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.
    • 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

                        702
                        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