Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Per MQTT Werte an Anzeigegerät (AZ Touch Mod) senden

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Per MQTT Werte an Anzeigegerät (AZ Touch Mod) senden

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

      Habe mir jetzt auch gerade 3 Displays bestellt. 3 ESP32 mini habe ich noch hier.
      Am Fr sollten die Teile da sein, dann werde ich mich mal da dran setzen.
      Hoffentlich kann ich am Mo dann Erfolge berichten 🙂

      amg_666 1 Reply Last reply Reply Quote 0
      • amg_666
        amg_666 @Bass-T last edited by

        @bass-t Bin gespannt 🙂

        1 Reply Last reply Reply Quote 0
        • F
          Fichte last edited by

          Meins sieht Aktuell so aus.
          Läuft über MQTT.
          Programmierung ist zwar nicht die schönste, aber funktionär 😂

          339b99ed-1a80-4dfe-bba5-1223161d42c1-image.png

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

            @fichte Kannst du den Code bitte posten? Die Anleitungen, die ich dazu gefunden habe bringen mich nicht weiter 😞

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

              @amg_666 Beschreibst du den ESP32 mit Arduino IDE?

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

                @fichte ja

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

                  @amg_666

                  AZDisplay.zip

                  Denk aber dran das es nicht Perfekt ist.
                  Es ist wie alles im Leben, Funktioniert und man rührt es nichtmehr an 🤣
                  Am Ende der ino Datei bei "void NVS_Start()"

                    prefs.putString("save_ssid", "WLAN Name");
                    prefs.putString("save_wifipwd", "WLAn PAsswort");
                    prefs.putString("save_clientname", "ESP Client Name");
                    prefs.putString("save_mqttserver", "MQTT Server IP");
                    prefs.putInt("save_mqttport", MQTT Port);
                  

                  Alles an dein System Anpassen.

                  Dann Erstellt du dir ein Blockly wo die daten Übermittelt werden.
                  hier hast du meins als Beispiel.

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <block type="on_ext" id="61n)%Y!M6uhxD:7PQX+Q" x="297" y="-367">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                      <field name="CONDITION">ne</field>
                      <field name="ACK_CONDITION"></field>
                      <value name="OID0">
                        <shadow type="field_oid" id="rab]-tzHYK#3-8kX^X|d">
                          <field name="oid">mqtt.0.Wohnzimmer.settemp</field>
                        </shadow>
                      </value>
                      <statement name="STATEMENT">
                        <block type="control" id="b=!XBN+{x7)dw3Oj.H(I">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.Raumtemperatur.WohnzimmerSoll</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="get_value" id="O[}IF/0^DkmZPi7:E%S*">
                              <field name="ATTR">val</field>
                              <field name="OID">mqtt.0.Wohnzimmer.settemp</field>
                            </block>
                          </value>
                        </block>
                      </statement>
                      <next>
                        <block type="on_ext" id="Q}ONZu_]z.bU}?OH6?=D">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                          <field name="CONDITION">ne</field>
                          <field name="ACK_CONDITION"></field>
                          <value name="OID0">
                            <shadow type="field_oid" id="tW^Cm@=heQ4_*^V/?!kp">
                              <field name="oid">zigbee.0.00158d00044a9329.temperature</field>
                            </shadow>
                          </value>
                          <statement name="STATEMENT">
                            <block type="control" id="Nv[~tH.6TBr4{~jLl2Z9">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">mqtt.0.Wohnzimmer.roomtemp</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">500</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE">
                                <block type="math_round" id="vCPke8y_GX!_$HDbe86%">
                                  <field name="OP">ROUNDDOWN</field>
                                  <value name="NUM">
                                    <shadow type="math_number" id="?Ox.yg|TsFJ+Vq2Uwi*8">
                                      <field name="NUM">3.1</field>
                                    </shadow>
                                    <block type="get_value" id="?~,W7S@Y:gl1O(bV6~U|">
                                      <field name="ATTR">val</field>
                                      <field name="OID">zigbee.0.00158d00044a9329.temperature</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </statement>
                          <next>
                            <block type="on_ext" id="mV@myC3i+V,$_cO:(x6R">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                              <field name="CONDITION">ne</field>
                              <field name="ACK_CONDITION"></field>
                              <value name="OID0">
                                <shadow type="field_oid" id="EKcV^7)mPu]*{]YinB!O">
                                  <field name="oid">sonoff.0.MCUHeizung.POWER3</field>
                                </shadow>
                              </value>
                              <statement name="STATEMENT">
                                <block type="control" id="p?x8+RA#-]vh`]X8v+8#">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                  <field name="OID">mqtt.0.Wohnzimmer.aktor</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">500</field>
                                  <field name="UNIT">ms</field>
                                  <field name="CLEAR_RUNNING">FALSE</field>
                                  <value name="VALUE">
                                    <block type="get_value" id="iTmBArzu+ew4TiDtLI}|">
                                      <field name="ATTR">val</field>
                                      <field name="OID">sonoff.0.MCUHeizung.POWER3</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                              <next>
                                <block type="on_ext" id="$t6c#QB65}98d9h0qot[">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                  <field name="CONDITION">ne</field>
                                  <field name="ACK_CONDITION"></field>
                                  <value name="OID0">
                                    <shadow type="field_oid" id="cQ*kCILPKvTl[uux`51n">
                                      <field name="oid">0_userdata.0.Raumtemperatur.WohnzimmerSoll</field>
                                    </shadow>
                                  </value>
                                  <statement name="STATEMENT">
                                    <block type="control" id="jD**ilY~aq(5j#`49hjZ">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                      <field name="OID">mqtt.0.Wohnzimmer.settemp</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">500</field>
                                      <field name="UNIT">ms</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE">
                                        <block type="get_value" id="u@}9tzz#3-Wa.8G`v[4I">
                                          <field name="ATTR">val</field>
                                          <field name="OID">0_userdata.0.Raumtemperatur.WohnzimmerSoll</field>
                                        </block>
                                      </value>
                                    </block>
                                  </statement>
                                  <next>
                                    <block type="on_ext" id="u%@r,J9Aa=Hs1QyI9{==">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                      <field name="CONDITION">ne</field>
                                      <field name="ACK_CONDITION"></field>
                                      <value name="OID0">
                                        <shadow type="field_oid" id=")Y__c5YpNOS67Yu8V9=?">
                                          <field name="oid">heatingcontrol.0.Rooms.Wohnzimmer.State</field>
                                        </shadow>
                                      </value>
                                      <statement name="STATEMENT">
                                        <block type="control" id="WWLmmTC9Hb6_A(`xajMr">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                          <field name="OID">mqtt.0.Wohnzimmer.heizstatus</field>
                                          <field name="WITH_DELAY">TRUE</field>
                                          <field name="DELAY_MS">500</field>
                                          <field name="UNIT">ms</field>
                                          <field name="CLEAR_RUNNING">FALSE</field>
                                          <value name="VALUE">
                                            <block type="get_value" id="#5,w5b?^B#w5sjp9GD?0">
                                              <field name="ATTR">val</field>
                                              <field name="OID">heatingcontrol.0.Rooms.Wohnzimmer.State</field>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </xml>
                  

                  LG Fichte

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

                    @fichte sagte in Per MQTT Werte an Anzeigegerät (AZ Touch Mod) senden:

                    Top, danke. ich werd das mal nächste Woche angehen und dann nochmal Feedback geben.

                    Es ist wie alles im Leben, Funktioniert und man rührt es nichtmehr an

                    Haha, das ist hier das iobroker Forum, wenn an funktionierenden Systemen rumgebastelt wird, dann doch wohl hier 🙂

                    1 Reply Last reply Reply Quote 0
                    • Bass-T
                      Bass-T last edited by Bass-T

                      Mittlerweile habe ich die Bauteile da und mich etwas damit beschäftigt.

                      Als Software nutze ich Tasmota mit HASPmota auf einem ESP32-S Dev Kit v4.
                      Dieses Board hat leider kein PSRAM, weshalb der RAM bei falscher Programmierung voll läuft und das modul dann abschmiert. Dann hilft nur noch neu flashen und Programm wieder runterschmeißen, bevor man den Fehler korrigieren kann, ...
                      Ein Modul mit PSRAM ist sehr schwer aufzutreiben 😞 Habe mir jetzt 3 aus China (ebay) bestellt. Leider ist die Pin Belegung eine andere und ich werde dann das ganze komplett neu verlöten müssen, ... Steckverbindung ist mit dem ESP32-S3 nicht nutzbar, ...

                      HASPmota basiert auf openHASP und man kann so schön mehrere Layer per jsonl Schreiben.

                      Bisher habe ich das Display an und einen PIR eingebaut, damit das Display automatisch an/aus geht.
                      Gestern Abend hat das auch funktioniert. Nach einem "mal wieder absturz" seit heute morgen nicht mehr 😞
                      Befehle per MQTT senden funktioniert auch schon seit gestern Abend 🙂

                      Absturz passiert in der Regel wann man png als Bilder benutzt. Besser ist es eine bin zu verwenden.

                      Aktuell bin ich dran das Design anzupassen.
                      "Leider" bin ich berufstätig 🙂 und kann nur abends dran. Weil ist schwierig zu Programmieren, wenn ich das Display nicht vor mir habe 😄

                      Als nächstes möchte ich jetzt noch per Status die Buttons/Symbole anpassen und einen Wetter Status mit einbauen.

                      Hier mal ein paar gute Quellen, welche ich gefunden habe - Die Dokumentation ist extrem sperrlich und schwer was passendes zu finden:

                      Angefangen habe ich hiermit
                      Weiter geht es jetzt hier

                      Werde euch auf dem Laufenden halten 😉

                      1 Reply Last reply Reply Quote 0
                      • Bass-T
                        Bass-T last edited by Bass-T

                        So, heute morgen kann ich erste erfolge berichten 😁
                        20230511_195741.jpg
                        Die ersten Symbole funktionieren;

                        • Beim Booten werden Variable Symbole in Pink angezeigt (weil sie noch keine Werte haben)
                        • Werte werden per MQTT ausgelesen
                        • Wenn die Werte hinterlegt sind (Werte werden bei jedem "Display AN" oder "Button) geladen, wird der Button Hintergrund "AN" in grün angezeigt.

                        Für die Werte Abfrage muss Folgeneder Datenpunkte unter MQTT.0 angelegt werden:
                        mqtt.0.Displays.ExterneWerteSenden (string)

                        Blockly für die ersten 3 Test Datenpunkte:

                        <xml xmlns="https://developers.google.com/blockly/xml">
                          <block type="comment" id="tc=)^tp.6.x{c8lDLy/i" x="88" y="113">
                            <field name="COMMENT">Werte senden / aktualisieren</field>
                            <next>
                              <block type="on" id="Ol.6$39XkHVd8(~#%eOF">
                                <field name="OID">mqtt.0.Displays.ExterneWerteSenden</field>
                                <field name="CONDITION">any</field>
                                <field name="ACK_CONDITION"></field>
                                <statement name="STATEMENT">
                                  <block type="control" id="*ECq=vFA46=pyi2j,s~w">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">mqtt.0.Displays.Balkon.Licht</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="get_value" id="LdnJDzg4E$;rF8J}k+2`">
                                        <field name="ATTR">val</field>
                                        <field name="OID">mqtt.0.Displays.Balkon.Licht</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control" id="$y+Osqm=C6VW@|##LieP">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                        <field name="OID">mqtt.0.Displays.Wohnzimmer.Fernseher</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE">
                                          <block type="get_value" id="M_j!9O7*%0?77]nYB(e9">
                                            <field name="ATTR">val</field>
                                            <field name="OID">mqtt.0.Displays.Wohnzimmer.Fernseher</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="control" id="Isi`;`eA@kB{vo.rQ-}9">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                            <field name="OID">mqtt.0.Displays.Allgemein.Hauptschalter</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE">
                                              <block type="get_value" id="r;Y@?OX1%-9jpsx$#8(Y">
                                                <field name="ATTR">val</field>
                                                <field name="OID">mqtt.0.Displays.Allgemein.Hauptschalter</field>
                                              </block>
                                            </value>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </statement>
                                <next>
                                  <block type="comment" id="Hk?L_Y|yq8LBmDLe3q)l">
                                    <field name="COMMENT">Werte ändern</field>
                                    <next>
                                      <block type="on" id="egGg]/)f^,N8Tq2L#^d)">
                                        <field name="OID">mqtt.0.stat.Balkon.POWER</field>
                                        <field name="CONDITION">ne</field>
                                        <field name="ACK_CONDITION"></field>
                                        <statement name="STATEMENT">
                                          <block type="control" id=",U{rBN=^1cUNUB.H4oDl">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                            <field name="OID">mqtt.0.Displays.Balkon.Licht</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE">
                                              <block type="on_source" id="z9bSolmZE/pOrXGa[]b{">
                                                <field name="ATTR">state.val</field>
                                              </block>
                                            </value>
                                          </block>
                                        </statement>
                                        <next>
                                          <block type="on" id="JCpRovwDHt%_w(,+f,m|">
                                            <field name="OID">alias.0.Wohnzimmer.Fernseher.SET</field>
                                            <field name="CONDITION">ne</field>
                                            <field name="ACK_CONDITION"></field>
                                            <statement name="STATEMENT">
                                              <block type="control" id="e=u)).S7~+i99K$m@8*$">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                <field name="OID">mqtt.0.Displays.Wohnzimmer.Fernseher</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="on_source" id="z=zwTK$q~7x}qt%-xdQs">
                                                    <field name="ATTR">state.val</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                            <next>
                                              <block type="on" id="t~Mi$uox`;Cm9dLfGF#E">
                                                <field name="OID">mqtt.0.stat.Hauptschalter.POWER</field>
                                                <field name="CONDITION">ne</field>
                                                <field name="ACK_CONDITION"></field>
                                                <statement name="STATEMENT">
                                                  <block type="control" id="Vg!#+da!O1~Y+K/BnwT5">
                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                    <field name="OID">mqtt.0.Displays.Allgemein.Hauptschalter</field>
                                                    <field name="WITH_DELAY">FALSE</field>
                                                    <value name="VALUE">
                                                      <block type="on_source" id="]AsN,Cs-N75T!9m3Dbfj">
                                                        <field name="ATTR">state.val</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </statement>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </xml>
                        

                        Auf dem ESP läuft tasmota32-lvgl.bin

                        Dateien für die erste config:
                        autoexec.be
                        pages.jsonl

                        Werde die Tage noch ein Wetter auf die Main Page packen.
                        Bilder folgen dann auch noch ausführlicher.

                        Viel Spass damit vorab 🙂

                        EDIT:
                        Hier noch die display.ini, da ich das Display hochkannt benutze:

                        :H,ILI9341,320,240,16,SPI,1,*,*,*,*,*,*,*,20
                        :S,2,1,1,0,40,20
                        :I
                        EF,3,03,80,02
                        CF,3,00,C1,30
                        ED,4,64,03,12,81
                        E8,3,85,00,78
                        CB,5,39,2C,00,34,02
                        F7,1,20
                        EA,2,00,00
                        C0,1,23
                        C1,1,10
                        C5,2,3e,28
                        C7,1,86
                        36,1,48
                        37,1,00
                        3A,1,55
                        B1,2,00,18
                        B6,3,08,82,27
                        F2,1,00
                        26,1,01
                        E0,0F,0F,31,2B,0C,0E,08,4E,F1,37,07,10,03,0E,09,00
                        E1,0F,00,0E,14,03,11,07,31,C1,48,08,0F,0C,31,36,0F
                        11,80
                        29,80
                        :o,28
                        :O,29
                        :A,2A,2B,2C
                        :R,36
                        :0,28,00,00,05
                        :1,88,00,00,01
                        :2,E8,00,00,02
                        :3,48,00,00,03
                        :r,3
                        :i,20,21
                        :TS,*
                        :M,3946,401,3828,241
                        #
                        
                        D 2 Replies Last reply Reply Quote 0
                        • D
                          Dieter_P @Bass-T last edited by Dieter_P

                          @bass-t

                          Danke, konntest Du weitere Erkenntnisse sammeln? Wäre sehr an Deinem Beispiel interessiert.

                          Die Darstellung funktioniert schon mal bei mir auf dem Display nur wie Du den Mqtt transfer realisiert hast, ist mir noch nicht wirklich klar.

                          Kannst Du das bitt einmal umreißen?

                          Du legst in der autoexec.be globale Variablen an die Du mit haspmota und der entsprechenden Button/Switch/etc Bezeichnung verknüpfst?

                          Bin schon länger auf der Suche nach einem Tutorial wie man zB erstmal einfach startet und nur einen Wert zB Temperatur der über mqtt übermittelt wird darstellt.

                          Dann ergänzend was zu tun ist, wenn es ein lesen und schreiben wie bei einem button ist. Leider bisher nichts gefunden und der Gedanke Haspmota zu verwenden, da da der Unterbau ähnlich und sofort wie bei Tasmota funktioniert (zB Mqtt) erscheint mir ein Irrglaube.

                          1 Reply Last reply Reply Quote 0
                          • D
                            Dieter_P @Bass-T last edited by Dieter_P

                            Scheiter leider noch am Transfer der Daten vom IOBroker zum Display. Vielleicht kann mir dbzgl. jemand einen Hinweis geben, gerne auch wie ich es testen kann.

                            Habe aktuell wie von @Bass-T beschrieben einen Datenpunkt ExterneWerteSenden angelegt und dieser wird auch mit Display On/Off aktualisiert im IOBroker.

                            Daraufhin wollte ich einen Testdatenpunkt aktualisieren/senden der im Display auf eine globale Variable p1b200 geht die von einem Button wiederum belegt ist. Dieser leider ohne erkennbare Wertezuweisung.

                            Im IOBroker:
                            5b3ce5d3-2c2b-47aa-a70a-f05ecab39546-grafik.png

                            217ae8b1-079a-4126-b586-237c103c2089-grafik.png

                            Im Display:

                            def subscribes()
                              import mqtt
                              mqtt.subscribe("Displays/WohnzDaikin/#", Wertezuweisen)
                            end
                            
                            def Wertezuweisen(topic, idx, payload_s,payload_b)
                              var logmassage = "MQTT: "
                              var loglevel = 4
                              if topic == "Displays/WohnzDaikin/Testvalue"
                                if payload_s == "OFF"
                                  global.p1b200.bg_color="#1FA3EC"
                                end
                                if payload_s == "ON"
                                  global.p1b200.bg_color="#00D000"
                                end
                              else
                                logmassage = "MQTT: MQTT-Unknown "
                                loglevel = 2
                              end
                              log(logmassage + topic +" "+ payload_s +"("+ str(idx) +" "+ str(payload_b) +")",loglevel)
                              return true
                            end
                            

                            Über Tips würde ich mich freuen.

                            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

                            531
                            Online

                            31.6k
                            Users

                            79.5k
                            Topics

                            1.3m
                            Posts

                            7
                            25
                            3606
                            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