Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Einbindung von Geräten
    5. openDTU per MQTT auslesen und steuern

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    openDTU per MQTT auslesen und steuern

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

      Hallo Zusammen,

      ich habe mir auf einem ESP32 Board die Software openDTU installiert. Soweit so gut. Ich kann nun alle Daten über den MQTT Broker/Client Adapter lesen aber leider nicht schreiben...weder in dem ich direkt das jew. Objekt überschreibe, noch wenn ich über Blockly einen "SendTo" Block verwende. Ich habe schon div. Foren und Seiten durchsucht (einige haben wohl das Problem) leider gibt es aber keine wirkliche eine Lösung in genau dieser Konstallation.

      Auf der GitHub Seite wird erklärt, welche Parameter gesendet werden können. Leider weiß ich nicht, wie ich diese Daten ggf. noch senden kann, als über Blockly.

      Genauer gesagt geht es mir um den Parameter "[serial]/cmd/limit_persistent_relative" welchen ich über den IoBroker gerne steuern würde um die Leistung des Hoymiles zu verändern.

      Leider ist es nun auch so, dass die Parameter bei mir (augenscheinlich anders heißen), als auf Github angegeben

      github: [serial]/cmd/limit_persistent_relative
      iobroker: OpenDTU/[serial]/status/limit_relative

      Hat jemand das gleiche Problem bzw. nutzt ggf. jemand die gleiche Logik/Funktion erfolgreich und kann mir sagen, was ich falsche mache?

      Danke vorab für Eure Hilfe
      Timo

      opendtu.PNG

      crunchip S 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active last edited by mickym

        @dpo99 Es ist immer das gleiche Problem. In der Regel wird ein Gerät nie diese topics publishen auf die es hört - da Endlosschleifen vorprogrammiert sind. Du musst halt die Datenpunkte über die Du was schicken willst. Insofern besteht gar kein Unterschied - ist alles normal.

        107f8aab-0df3-4f89-808f-7a4d3b1f40f0-image.png

        Diese ganzen Parameter die man schicken kann auf die das Gerät hört sind in einem cmd Ast. Also erstelle mal einen Ordner cmd unter Seriennummer und dann die einzelnen Punkte. Das musst schon Du machen - das macht nicht das Gerät - weil es erwartet dass Du weisst über was Du kommunizierst.

        Um das unter mqtt zu erstellen musst Du den Expertenmodus einschalten.

        5ee456e0-96c7-4007-b649-b078b4c8eabc-image.png

        1 Reply Last reply Reply Quote 1
        • D
          DPO99 last edited by

          @mickym Tausend Dank für den Ansatz. Genau das hat mir gefehlt. Genau diese Logik hatte sich mir nicht ergeben...bisher konnte ich immer alles über den Weg steuern über den es auch reingekommen ist.

          Ich weiß nicht ob es einen Unterschied macht, aber ich habe nebenbei noch eine Anleitung gefunden, wie diese Werte über den MQTT-Explorer veröffentlicht werden. Untern Strich ist es sicher genau das selbe wie händisch anlegen (zumindest im Ergebnis sieht es so aus). Aber auch hier hatte mich (bis zu Deiner Nachricht) eben diese Abweichung verunsichert.

          Nun kann ich die Leistung des Hoymiles steuern, wenn ich einen unbestätigten Wert eingebe. Den Unterschied zwischen steuern und aktualisieren habe ich schon lernen müssen :D....

          Danke nochmals!
          VG
          Timo

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

            @dpo99 Sobald du über ein anderes Mqtt - tool ( MQTT-Explorer) diese topics beschreibst, sind die natürlich automatisch auch im Adapter sichtbar. Du hättest auch über SendTo an den MQTT Adapter diese topics publishen können oder auch über NodeRed mqtt Nodes. 😉 Das sind alles gangbarer Wege. Wie gesagt nur kann das Gerät selbst nicht die Datenpunkte publishen, die es selbst subscribed. Das würde nur ins Endlosschleifen führen.

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

              @dpo99 sagte in openDTU per MQTT auslesen und steuern:

              Nun kann ich die Leistung des Hoymiles steuern, wenn ich einen unbestätigten Wert eingebe. Den Unterschied zwischen steuern und aktualisieren habe ich schon lernen müssen :D...

              Da gibts einen ganzen Thread darüber

              fac9b034-28cf-4077-915f-fd1049a7ad25-image.png

              Ist eigentlich einfach zu merken. Bestätigen dürfen eigentlich nur Adapter die mit Hardware kommunizieren. Sie "bestätigen" den Zustand eines Gerätes und werden nur dann aktiv - wenn etwas unbestätigt geschickt wird - das wird dann ausgeführt und wenn alles gut geht von diesem Adapter bestätigt.

              Das heißt bis auf die 0_userdata.0 Punkte, die Du selbst angelegt hast, schickst Du immer unbestätigt, damit die Adapter was tun. Bei 0_userdata.0 Punkten gibt es keinen Adapter der etwas tun soll, deswegen schickt man das hier bestätigt.

              Bei den Google Puzzle-teilen heißt das halt steuern (unbestätigt) bzw. aktualisieren (bestätigt) - bei NodeRed heisst es command (unbestätigt) oder value(bestätigt).

              Das ist deshalb beim MQTT-Adapter nicht anders - der schickt nur unbestätigte Werte und bestätigt selbst, wenn die Aktion erfolgreich war.

              D 1 Reply Last reply Reply Quote 1
              • D
                DPO99 @mickym last edited by

                @mickym Danke für den Link zum Thread und die weiteren Infos! 🙂

                1 Reply Last reply Reply Quote 0
                • crunchip
                  crunchip Forum Testing Most Active @DPO99 last edited by

                  @dpo99 sagte in openDTU per MQTT auslesen und steuern:

                  Leider weiß ich nicht, wie ich diese Daten ggf. noch senden kann

                  so nebenbei, es gäbe sogar einen Adapter

                  L 1 Reply Last reply Reply Quote 1
                  • L
                    Laser @crunchip last edited by Laser

                    gelöscht (doppelt)

                    1 Reply Last reply Reply Quote 0
                    • L
                      Laser last edited by Laser

                      gelöscht (doppelt)

                      1 Reply Last reply Reply Quote 1
                      • S
                        schneire @DPO99 last edited by

                        @dpo99 Hallo Timo,
                        jetzt steh ich noch wie der Ochs vor Berg, ich habe bisher nur den cmd Ordner angelegtab6f4b5d-75d8-4a42-8517-b4c1b074906c-grafik.png

                        Kannst du mir weiterhelfen wie ich am besten die Limitbefehle erstelle.
                        Ich möchte zB. um 19:00 Uhr auf 20% runter und morgens ab 07:00 wieder auf 100% rauf.
                        Danke fürs helfen.
                        Reiner

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          DPO99 @schneire last edited by DPO99

                          @schneire

                          Die CMD Befehle müssen auch noch jew. einzeln angelegt werden. Das geht entweder darüber, dass du diese eben händisch anlegst oder du kannst auch z.B. die Software MQTT-Explorer nutzen und dann dort einmal jeden gewünschten Status (gem. OpenDTU MQTT Topics Tabelle) publishen.

                          d3e4b847-2487-453d-8911-b02a59c1ef66-image.png

                          Den OpenDTU Adpater kann ich Dir auch empfehlen. Dort ist der Vorteil, dass alle Objekte/Variablen automatisch angelegt werden und man diese dann direkt in ein z.B. Blockly Skript einbinden kann. Schau Dir den auch einfach mal Testweise an: https://github.com/o0shojo0o/ioBroker.opendtu

                          Wie man einen Adapter aus Github installiert ist hier erklärt.

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            schneire @DPO99 last edited by

                            @dpo99 danke für die Erklärungen, ich habe jetzt manuell die Punkte hinzugefügt und auch noch den Adapter dazu installiert.
                            Allerdings brauche ich nochmals Unterstützung, da ich noch keinen
                            Limitbefehl abgesetzt habe. Wie machst du das, bitte dein Beispiel. DAnke
                            mqtt2.PNG

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              DPO99 @schneire last edited by DPO99

                              @schneire Du kannst jetzt einfach auf die jew. Zahl (0 z.B.) klicken und dann einen Wert eintragen. Dieser sollte dann an OpenDTU übermittelt werden. Vorher natürlich den Wechselrichter noch einschalten 😃

                              Und bitte überprüfe nochmals die Topics. Power Off und Power On gibt es so in MQTT nicht, das macht nur der OpenDTU Adapter so. Restart (und auch alle anderen Topics die schreibbar sind) ist kein boolean (true/false) sondern eine zahl (0/1). Alle MQTT topics findest du hier.

                              8649183f-80d0-48eb-a8b8-29fea95be5a4-image.png

                              Hier wäre dann z.b. ein ganz ganz einfaches Blockly skript, welches jeden Tag um 18h eine Leistung von 600w an den WR senden.

                              4e6ceb9a-307e-4657-bf72-93e075ca5b75-image.png

                              S 1 Reply Last reply Reply Quote 0
                              • S
                                schneire last edited by schneire

                                @dpo99 Per blockly bekomme ich zeitgesteuert zwar ROT was reingeschrieben aber es geht nicht an den Status weiter! Mache ich das händisch über WERT wird es ebenfalls nicht übernommen. Wo liegt denn da mein Konstruktions- Fehler? 😕
                                070a95cf-df46-4a42-bc6d-ffffda69a468-grafik.png

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  schneire @schneire last edited by

                                  @schneire
                                  Und ja mit dem Adapter kann ich Limits manuell schreiben...

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    schneire @DPO99 last edited by schneire

                                    @dpo99 also mit den openDTU-Adapter ist mit das Limitsetzen gelungen.😃 Danke für deine Hinweise.
                                    Ich habe den cmd-Zweig nochmal neu aufgebaut aber da läuft wieder nichts ...
                                    Habt ihr dafür einen Erklärung? LG Reiner

                                    D 1 Reply Last reply Reply Quote 0
                                    • D
                                      DPO99 @schneire last edited by DPO99

                                      @schneire Teste bitte über den CMD zweig einmal, ob du das "persistant" limit setzen kannst bzw. auch ob an und ausschalten geht. Vorher müsstest du noch den Power Wert anlegen. Wichtig ist auch, dass die Werte nicht Bestätigt übergeben werden (Haken also NICHT setzen).

                                      93cdb22b-8bb1-4967-8c88-e82706406539-image.png

                                      Falls das geht, kann ich dir noch ein paar Punkte/Tipps geben, wie das auch mit non_persistant klappen könnte (hier gibt es ein paar Grundlegend Unterschiede in den Befehlen).

                                      Ansonsten könntest du für das steuern natürlich auch den OpenDTU Adpater verwenden.

                                      1 Reply Last reply Reply Quote 0
                                      • X
                                        xbow42 last edited by

                                        Moin,

                                        ich hab den DP(OpenDTU-Bxxxxx/000000000000/cmd/limit_nonpersistent_relative 50) über MQTTExplorer publisht. 50% wurden in OpenDTU und auf im ioBroker-DB übernommen.

                                        Wenn ich den DP(hat das Attribut "write": true,) im iobroker auf einen neuen Wert setze wir der Wert nicht von openDTU->bzw. Wechselrichter übernommen. Mit und ohne "Bestätigt"-Häkchen probiert.

                                        Woran könnte das liegen?
                                        Klar kann ich den openDTU-Adapter porbieren, würde aber trotzdem gerne wissen woran es liegt.?

                                        L 1 Reply Last reply Reply Quote 0
                                        • L
                                          Laser @xbow42 last edited by

                                          @schneire "habe den cmd- Zweig noch mal neu aufgebaut". Der sollte sich doch bei Verwendung des Adapters von selbst neu aufbauen? Version 0.1.7 verwende ich. Hat bei mir geklappt. Wenn Benutzer und Passwort stimmt, muß das funktionieren. In "Objekte" trage ich einen Wert ein und drücke auf das blaue Feld setzen. Mehr nicht.

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

                                            @laser der cmd AST wird sich nie selbst aufbauen - ein Gerät kann nicht gleichzeitig auf dem topic was hören, auf was es sendet. Das würde zu Endlosschleifen führen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            64
                                            15797
                                            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