Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Tasmota Steckdose per MQTT sofort abfragen möglich?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Tasmota Steckdose per MQTT sofort abfragen möglich?

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

      Hallo. Bin neu hier und habe eine blöde Frage.

      Kann ich eine Tasmota Steckdose dazu bewegen mir einmalig alle Werte zu schicken so wie ich Sie z. B. per MQTT einschalten kann?

      Möchte eine Drainagepumpe alle Std. kurz einschalten. Wenn Stromverbrauch über 50W laufen lassen bis unter 50W (dann ist nämlich kein Wasser mehr da). Habe das Intervall jetzt auf 10s. Dann läuft die Pumpe halt jede Std. für mindestens 10s trocken obwohls vielleicht ne Woche nicht geregnet hat. Schöner wäre ich schalte Sie ein. Zwinge Sie mir den Stromverbrauch sofort zu senden und mein Script kann direkt nach der ausgelesenen Leistung die Pumpe wieder abschalten.

      Level 2 wäre ob man irgendwie Wetterdaten in ein Blockly Script bauen kann. Also wenns an meinem Standort nicht geregnet hat nur 1x am Tag auf Sickerwasser prüfen. Wenns Wolkenbruchartig lt. Wetterbericht regnet alle 15min schon mal testweise anschalten.

      Ich bin sicher die Cracks hier haben ein paar Ideen. Danke.

      falke69 BananaJoe 2 Replies Last reply Reply Quote 0
      • falke69
        falke69 @arumpel last edited by

        @arumpel

        Standart Zeit ist 300 sek c.a. 5 Min
        Du kannst es aber auf max. 10 runter nehmen.
        Mehr ist da nicht drin.

        Dann werden die Daten häufiger mit MQTT oder Sonoff Adapter aktualisiert.

        2021-03-12_140151.jpg

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

          @arumpel

          Du kannst ja per

          cmnd/NameDesGerätes/POWER
          

          Das Gerät ein, aus oder Umschalten.
          Wenn du

          cmnd/NameDesGerätes/Status 8
          

          Ausführst sendet er sofort die STATUS8 Meldung welche bei mir die Daten mit dem Stromverbrauch enthält und ich entsprechend auswerte:

          {"StatusSNS":{"Time":"2021-03-14T14:30:53","ENERGY":{"TotalStartTime":"2020-04-11T13:16:52","Total":1498.377,"Yesterday":5.582,"Today":3.273,"Power":248,"ApparentPower":334,"ReactivePower":224,"Factor":0.74,"Voltage":238,"Current":1.405}}}
          

          Ohne Nummer sendet nur STATUS, mit 1 bis 9 entsprechend die STATUS1 bis STATUS9
          So kannst du also die Meldung selbst antriggern und den Default-Wert on 300 beibehalten.

          Funktioniert bei mir mit Tasmota 9.3.1, ich meine das ging vorher auch schon so.

          A 1 Reply Last reply Reply Quote 0
          • A
            arumpel @BananaJoe last edited by

            @bananajoe said in Tasmota Steckdose per MQTT sofort abfragen möglich?:

            cmnd/NameDesGerätes/Status 8

            Das Kommando muss ich dann irgendwie per HTTP Aufruf an die Steckdose bringen? Den HTTP-Aufruf Befehl müsste ich dann im Blockly Script reinbringen. Hast Du vielleicht ein Beispiel wie das aussieht mit steckdosen IP 192.168.0.54 ?

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

              @arumpel Wieso denn HTTP? - das sind doch Datenpunkte im MQTT im cmnd Ast.
              a13afc24-3a2f-49ab-8125-0cd1e832c203-image.png

              Wenn Du 0 hier eingibst, werden alle Status Datenpunkte unter Stat aktualisiert ausser Status 12 und 8.

              screen.png

              Im Status Feld ohne Nr. hast Du Dein JSON mit dem der aktuelle Power Status ausgelesen werden kann.

              Ich habe noch Tasmota 8.1 drauf - also Version ist kein Problem.

              Ich sehe gerade status 8 enthält die Energiedaten - auch kein Problem - dann eben oben statt 0 die 8 eintragen, der enthält die Energiedaten in JSON:

              {"StatusSNS":{"Time":"2021-03-16T14:54:36","ENERGY":{"TotalStartTime":"2020-01-24T22:21:27","Total":1.347,"Yesterday":0.000,"Today":0.003,"Power":127,"ApparentPower":133,"ReactivePower":40,"Factor":0.95,"Voltage":228,"Current":0.586}}}
              

              Über HTTP den Status 8 abfragen geht natürlich auch:

              http://<ip>/cm?user=<username>&password=<password>&cmnd=status%208
              

              screen.png

              Wie Du das mit Blockly machst, musst DU die Blockly Fans fragen, ich arbeite mit NodeRed.

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

                @arumpel sagte in Tasmota Steckdose per MQTT sofort abfragen möglich?:

                @bananajoe said in Tasmota Steckdose per MQTT sofort abfragen möglich?:

                cmnd/NameDesGerätes/Status 8

                Das Kommando muss ich dann irgendwie per HTTP Aufruf an die Steckdose bringen? Den HTTP-Aufruf Befehl müsste ich dann im Blockly Script reinbringen. Hast Du vielleicht ein Beispiel wie das aussieht mit steckdosen IP 192.168.0.54 ?

                Das schreibst du einfach in den mqtt.0/cmd/NamedesGeraetes/Status Datenpunkt mit dem Blockly Steuere, Aktualisiere oder Schreibe Block.
                Den Datenpunkt gibt es wahrscheinlich noch nicht, also muss du entweder den "Schreibe" Block nehmen, bei Object Id dann ein Textfeld anhängen und den Pfad da reinschreiben.
                Oder du legst den Datenpunkt händisch unter Objekte an, dann kannst du den in Blockly auswählen wie jeden anderen Datenpunkt auch

                A 1 Reply Last reply Reply Quote 0
                • A
                  arumpel @BananaJoe last edited by

                  @bananajoe

                  Ich benutzte den Sonoff Adapter für die Tasmotas und nicht Mqtt.

                  Habe es hinbekommen, den Punkt cmnd/status angelegt und wenn ich da eine 0 oder 8 reinschreibe zeigt die Steckdose im Webinterface unter Console auch die Rückmeldung STATUS8 oder STATUS gefolgt von weiteren 11 Zeilen STATUS1 bis STATUS11 an mit Werten an.

                  Nur diese Werte Werte im Sonoff Adapter im IOBroker nicht aktualisiert. Stehen nur im Console Interface. Ein Update erfolgt erst nach Ablauf der eingestellten Zeit welche ich Testhalber von dem 10s Intervall wieder auf normale 300s gestellt habe.

                  Insofern also alles für die Katz und man kann der Steckdose eben doch nicht sagen Sie soll die Werte einmalig aktuell über MQTT senden?

                  mickym BananaJoe 3 Replies Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @arumpel last edited by mickym

                    @arumpel Wenn Du nicht das normale MQTT (sondern lieber den Sonoff Adapter) nutzen willst, ich hab Dir doch den HTTP Befehl geschickt mit dem Du die Werte auf Bedarf rausbekommst?

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      arumpel @mickym last edited by

                      @mickym

                      Ja, wenn ich im Browser eingebe:
                      http://192.168.0.54/cm?user=<username>&password=<password>&cmnd=status 8

                      Dann liefert er im Browser folgendes zurück:
                      {"StatusSNS":{"Time":"2021-03-17T15:55:07","ENERGY":{"TotalStartTime":"2021-03-05T19:21:10","Total":2.225,"Yesterday":0.185,"Today":0.129,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":0,"Current":0.000}}}

                      Nun bin ich leider noch nicht so fit wie ich den HTTP Aufruf in Blockly Schreibe und hieraus wieder die aktuelle Leistung als Variable rausbekomme um vergleichen zu können ob es nun über oder unter 50W sind.

                      Du meinst der MQTT Adapter würde sich aktualisieren nach dem Status Befehl?
                      Hab den nicht genommen da hier alle Werte als ein langer String rauskommen. Das ist unübersichtlich und ich muss im Script wieder die Werte herausextrahieren. Zudem kann ich für den Influx DB Adapter einfach in den Objekten rechts klicken und schon schreibt er nur den Power Wert in die Datenbank, alles andere brauch ich auch gar nicht und ich habe es in Grafana auch nicht auf die Reihe gebracht hier wieder den Power Wert rauszulesen. Insofern war mit der Sonoff Adapter viel lieber und einfacher aber der aktualisiert sich eben nicht nach dem Status Befehl.

                      mickym 3 Replies Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @arumpel last edited by mickym

                        @arumpel Nun wenn Du NodeRed und nicht Blockly nutzen würdest, könnte ich Die schnell helfen. Der String ist nicht so kompliziert, da einfach ein JSON String und Du mit einem parse das leicht in ein Objekt wandeln kannst.
                        Ich hab das mal in so einen JSON Formatter eingegen und dann schaut dieser String schon sehr übersichtlich aus:

                        c15f5e47-8648-4f0b-bd06-b3a74211b163-image.png

                        Wenn Du sowas mit parse im Javascript oder in NodeRed zugreifen willst, dann geht das ziemlich einfach:

                        var obj = JSON.parse('{"StatusSNS":{"Time":"2021-03-17T15:55:07","ENERGY":{"TotalStartTime":"2021-03-05T19:21:10","Total":2.225,"Yesterday":0.185,"Today":0.129,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":0,"Current":0.000}}}');
                        

                        damit kannst Du dann via obj.StatusSNS.ENERGY.ApparentPower direkt auf den Wert zugreifen, ohne dass Du lange den String analysieren muss.

                        @arumpel sagte in Tasmota Steckdose per MQTT sofort abfragen möglich?:

                        Du meinst der MQTT Adapter würde sich aktualisieren nach dem Status Befehl?

                        Ja - das habe ich Dir doch an meinem Screenshot gezeigt. Allerdings nutze ich wegen Problemen den MQTT Adapter als Client und mosquitto als Broker, aber zum Anfang kannst Du es ja auch mit dem MQTT Adapter als Broker versuchen.

                        Un wie gesagt, wenn Du mit Deiner Logikmaschine noch nicht so festgelegt bist, dann helfe ich Dir gerne sowas mit NodeRed zu implementieren. Vielleicht hänge ich mal einen kleinen Flow an damit Du siehst wie easy das geht. 😉

                        So ich mal schnell so einen Flow gebaut - mit der Taste im Inject Node trigger ich den HTTP Befehl:

                        7de5a56c-308b-42e9-b306-1144012fedbc-image.png

                        Dann siehst Du aus der 1. Debug Node das JAVA Objekt und daraus die Apparent Power wie oben beschrieben oder hier nochmals gezeigt extrahiert:

                        c2420c14-184d-4bca-9a62-a98c9e93adb1-image.png

                        Das geht sicher auch easy im Blockly aber da kann Dir dann @paul53 sicher helfen - ich bin da raus.

                        Im Blockly gibts aber auch sowas ähnliches mit dem Du URLs abfragen und dann weiterverarbeiten kannst:

                        f793799b-ff56-4c08-8c64-b7d3a36bd815-image.png

                        Edit: Vielleicht noch eine kleine Anmerkung - ich habe Dir den Node Red Flow nicht zum importieren rauskopiert, weil es mir nicht darum geht, dass Du es nicht in Blockly machst. Aber mit Node Red kann man eben auch gut die Schritte visualisieren, die Du halt im Blockly nachbauen musst - also:

                        1. URL abrufen
                        2. Ergebnis mit parse in ein Objekt umwandeln (macht die JSON Node)
                        3. Apparent Power extrahieren und in Variable abspeichern - habe ich ja im Text auch erklärt (im Flow die Change Node)
                        4. Dann hast Du Deinen Wert und fragst halt dann > oder < 50 ab und schaltest Deine Pumpe und das ganze vielleicht noch in einer Schleife und triggern musst Du das Ganze auch noch.
                        1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @arumpel last edited by mickym

                          @arumpel sagte in Tasmota Steckdose per MQTT sofort abfragen möglich?:

                          Nun bin ich leider noch nicht so fit wie ich den HTTP Aufruf in Blockly Schreibe und hieraus wieder die aktuelle Leistung als Variable rausbekomme um vergleichen zu können ob es nun über oder unter 50W sind.

                          Der Rest ist dann ja easy mit >50 und dann mache dies, sonst mache das usw.

                          aed690b4-41fd-4804-9c4f-23a87301b33b-image.png

                          Wollte ich eigentlich an das letzte Posting anhängen - aber egal. 😉

                          Jedenfalls wollte ich Dir sagen, dass das das geringste Problem ist. Und mit den Wetterdaten und Blockly bin ich eher raus. 😉

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

                            @arumpel sagte in Tasmota Steckdose per MQTT sofort abfragen möglich?:

                            @bananajoe

                            Ich benutzte den Sonoff Adapter für die Tasmotas und nicht Mqtt.

                            Habe es hinbekommen, den Punkt cmnd/status angelegt und wenn ich da eine 0 oder 8 reinschreibe zeigt die Steckdose im Webinterface unter Console auch die Rückmeldung STATUS8 oder STATUS gefolgt von weiteren 11 Zeilen STATUS1 bis STATUS11 an mit Werten an.

                            Nur diese Werte Werte im Sonoff Adapter im IOBroker nicht aktualisiert. Stehen nur im Console Interface. Ein Update erfolgt erst nach Ablauf der eingestellten Zeit welche ich Testhalber von dem 10s Intervall wieder auf normale 300s gestellt habe.

                            Insofern also alles für die Katz und man kann der Steckdose eben doch nicht sagen Sie soll die Werte einmalig aktuell über MQTT senden?

                            Und deshalb nutze ich den Sonoff Adapter nicht (mehr) sondern den normalen MQTT und Werte das in einem eigenen JavaScript aus. Insbesondere um an die Werte zu kommen die der Sonoff-Adapter nicht verwertet.
                            Und beim MQTT benutze ich nicht den MQTT-Adapter als Server sondern als Client an einem Mosquitto-MQTT Server da der MQTT-Server von ioBroker mit meinen inzwischen über 60 Tasmota-Geräten überfordert war (es geht bis man den Adapter mal neu startet und sich dann alle Tasmota-Geräte sich auf einmal anmelden wollen).

                            So, das ist Klugscheißerei und hilft dir nicht weiter, bleibt der Abruf per HTTP-Request

                            http://192.168.1.10/cm?user=admin&password=test1234&cmnd=Status%208
                            

                            Da bekommst du allerdings auch ein JSON zurück den du dir auseinanderfummeln musst.

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

                              @arumpel sagte in Tasmota Steckdose per MQTT sofort abfragen möglich?:

                              Zudem kann ich für den Influx DB Adapter einfach in den Objekten rechts klicken und schon schreibt er nur den Power Wert in die Datenbank, alles andere brauch ich auch gar nicht und ich habe es in Grafana auch nicht auf die Reihe gebracht hier wieder den Power Wert rauszulesen. Insofern war mit der Sonoff Adapter viel lieber und einfacher aber der aktualisiert sich eben nicht nach dem Status Befehl.

                              Du kannst Dir im übrigen jeden von Dir extrahierten Wert in einen eigenen Datenpunkt wegschreiben. Diese Werte später mit dem Schraubenschlüssel in eine Datenbank zu schreiben, funktioniert mit jedem - auch von Dir selbst erstellten Datenpunkten - und ist eine der tollen iobroker Features. Das ist also eine Funktion des iobrokers und nicht eines Adapters. 🙂

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

                                gelöscht

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                882
                                Online

                                31.6k
                                Users

                                79.6k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                4458
                                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