NEWS
Per MQTT Werte an Anzeigegerät (AZ Touch Mod) senden
-
Hallo zusammen.
Ich bin noch relativ neu in dem Thema, habe aber schon so einige Sensoren und Schaltungen realisiert und in ioBroker eingebunden. Die Sensoren senden per MQTT die Messwerte an den ioBroker.
Nun habe ich mir ein kleines Wandgehäuse mit einem 2,8“ Touchdisplay gegönnt um mir gemessene Wetterdaten anzeigen zu lassen. Jedoch scheitere ich daran die Werte vom ioBroker an das Display zu senden. Habe schon viel probiert und komme einfach nicht weiter.Wie muss ich da vorgehen?
Müssen zum Senden der Werte extra Datenpunkte angelegt werden?Ich hoffe mich verständlich genug ausgedrückt zu haben und hoffe auf hilfreiche Tipps.
-
@stephan-sommer sagte in Per MQTT Werte an Anzeigegerät (AZ Touch Mod) senden:
einem 2,8“ Touchdisplay gegönnt um mir gemessene W
Du müsstesat mal ein bisschen mehr zu dem Teil sagen, wie wird es gesteuert, wie ist es programmiert etc.
Ich vermute mal dass as Display von einem ESP8266 oder so gesteuert wird (?).
Dann musst du
- das Display in iobroker einbinden (sollte per mqtt gehen)
- du musst in mqtt Datenpunkte für das Display haben
- die befüllst du dann in iobroker mit Werten aus relevanten Datenpunkten
Du sendest also keine Daten an das Gerät sondern du befüllst die entsprechenden (MQTT-) Datenpunkte im iobroker.
Das setzt natürlich voraus, dass das ESP entsprechend programmiert ist, schönes Projektbeispiel findest du hier. -
Das ganze läuft über einen ESP32 und ist mit einem fertigen Sketch programmiert der zusammen mit dem Display eine SmartHome Zentrale bildet, in der man sich dann Buttons und Anzeigewidgets erstellen kann (alles auf dem 2,8“ Touchdisplay). Im Hauptmenü dieser Zentrale muss ich dann auch die IP, Port und den Host des Brokers angeben. Alles gemacht. Jedoch sehe ich im ioBroker nichts davon.
Habe aber in dem Beispiel von Dir gesehen das man dann wohl doch Datenpunkte für das Display anlegen muss die man dann per Skript füllt.
Oder bin ich immer noch auf der falschen Spur??Generell sollte ich ja das Gerät im ioBroker sehen wenn die MQTT Verbindung steht. Richtig?
-
@stephan-sommer sagte in Per MQTT Werte an Anzeigegerät (AZ Touch Mod) senden:
den Host des Brokers angeben. Alles gemacht. Jedoch sehe ich im ioBroker n
In "meinem" Beispiel ist auf dem ESP ein Sketch kompiliert, der genau die Datenpunkte erwartet, die dann im Beispiel in iobroker angelegt wurden.
Wenn dein Teil bereits fertig programmiert angekommen ist, dann müsstest du erstmal rauskriegen wie genau die Datenpunkte heissen müssen.Aber:
Alles gemacht. Jedoch sehe ich im ioBroker nichts davon.
Sicher, dass du alles richtig eingestellt hast? Keine Tippfehler oder so? Wenn ip, port und Anmeldename/Passwort stimmen, dann müsste der mqtt host den auch erkennen und im iobroker unter objekte anzeigen. Ich würd das nochmal genau checken.
Ist sichergestellt, dass das Display auch in deinem Netz eingebucht ist? Stimmen WLAN-SSID und Passwort?Generell sollte ich ja das Gerät im ioBroker sehen wenn die MQTT Verbindung steht. Richtig?
Eben, deshalb check nochmal genau ALLE Einstellungen
-
Ok. Ich werde das alles noch einmal durchgehen und checken. Habe mir so etwas schon gedacht.
Werde berichten ob es geklappt.
Danke schon mal für die Hilfe bis hier her. Manchmal sieht man den Wald vor lauter Bäumen nicht. -
@stephan-sommer
Moin,
Hast du was erreicht?
Ich stehe vor dem gleichen Problem.
Die Schalter, Taster und Slider werden im Broker unter "cmnd" angezeigt aber ich kann keine Messwerte zum Touch schicken da die "stat" nicht im Broker angelegt werden.
Gruß Thorsten -
@ossisp1 Nun wenn man den Sonoff Adapter nimmt - das ist kein MQTT Broker - ansonsten sieht man eigentlich immer den stat Ast.
-
@mickym Ich benutze den MQTT Broker. Wie gesagt die cmnd zeigt er ja auch an aber die stats nicht.
Oder muß ich die extra anlegen und dann genauso im az-touch anlegen? -
@ossisp1 Nein alles was Tasmota sendet - wird im MQTT angelegt. Es sei denn der Adapter spinnt wieder mal und Du liest im Log irgendwas, dass Nachrichten nach 11 retries gelöscht wurden.
-
@mickym
Das bekomme ich beim ersten starten des AZ-Touch.
Tasmota ist da doch gar nicht im Spiel.
Das ist doch das Sketch von Gerald Lechner aus dem Smarthome Buch -
@ossisp1 Ich kenne das Buch nicht - aber ich glaube zumindest im Groben verstanden zu haben, wie MQTT funktioniert.
Wenn Du sagtst die Messwerte kommen herein, dann siehst Du diese ja im stat oder im tele Ast. Der cmnd Ast ist in der Regel immer leer, weil darauf die Geräte subscriben - diese muss man also anlegen.
Ehrlich gesagt verstehe ich auch nicht so recht, was oder wer der Client 3C6105309E3CID ist.
Wenn Du also die Werte im MQTT Adapter von Deiner Wetterstation hast geht es doch darum, die auf Dein Display zu schicken und das geht nur über eigens angelegte Datenpunkte im cmnd Ast Deines Displays.
Als erstes kannst Du ja mal schauen, ob Du über die Tamota Konsole befehle absetzen kannst um was auf dem Display zu senden. Wenn das funktioniert kannst Du diesen Befehl zumindest in gleicher Form über einen selbst erstellten Datenpunkt backlog im cmnd Ast Deines Displays zu schicken.
Im Prinzip siehst Du ja alles Kommandos für Displays hier: https://tasmota.github.io/docs/Commands/#displays
Um was zu schreiben - kannst Du also unter Deinem cmnd Ast des Displays ein Datenpunkt DisplayText und DisplayMode erstellt werden. Wenn DisplayMode auf 0 gesetzt ist, kann man wohl im DisplayText dann wie hier https://tasmota.github.io/docs/Displays/#displaytext beschrieben anwenden.
Was Du mit Deinem eigenen stat willst - verstehe ich ehrlich gesagt nicht. Ich würde aber Deine MQTT-Einstellungen des Adapters belassen und weder eigene states unterhalb von mqtt.0.* publishen. In den Standardeinstellungen solltest Du von allen Geräten, die etwas publischen entsprechenden Datenpunkte sehen. Für alle wo Du was publishen willst musst Du die Datenpunkte selbst erstellen.
-
@stephan-sommer Hi, ich komme nochmal auf deinen Post zurück.
- Hat das jetzt geklappt und läuft das?
- (viel wichtiger Ich hab mir auch so einen AZ-Touch zugelegt, komme aber überhaupt nicht klar mit dem Aufspielen eines fertigen Sketches klar. Wenn du mir hier ein paar Infos geben kannst, welchen Sketch du verwendest und wie du den aufgespielt hast, wäre das super...
-
Hallo
Hat hier schon jemand eine Lösung was das AZ Touch und MQTT betrifft?
-
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 -
@bass-t Bin gespannt
-
Meins sieht Aktuell so aus.
Läuft über MQTT.
Programmierung ist zwar nicht die schönste, aber funktionär -
@fichte Kannst du den Code bitte posten? Die Anleitungen, die ich dazu gefunden habe bringen mich nicht weiter
-
@amg_666 Beschreibst du den ESP32 mit Arduino IDE?
-
@fichte ja
-
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