MQTT Fragestellung

Hallo zusammen,
ich arbeite mich gerade an das Thema MQTT ran. Ich habe hier ein ESP32 basiertes Display:

Dort habe ich OpenHASP draufgeflashed: https://nightly.openhasp.com/
Gerät: Guition ESP32-S3-4848S040

Alles wunderbar. Kleines Beispiel designed. MQTT Server in IPS eingerichtet.

Instanz ist auch da, und Variable aktualisiert sich auch:

Mein Problem ist das senden. Ich habe schon den Punkt mit RequestAction gefunden. Gehe ich auf die Value Variable bekomme ich den fehler „Variable is marked as read-only“. Kann mir hier jemand eine Hilfestellung geben?

lg
Theo

Hier ist das Thema schon mal bezüglich JSON kodierter Topics erklärt worden, das sollte dir hoffentlich helfen.

Michael

Ich habe die Variable in der Instanz jetzt auf String umgestellt und bekomme zumindest die Readonly Warnung nicht mehr. Allerdings verändert sich das Objekt auf dem Device nicht. Nur die Variable in IpSymcon verändert sich. Das Problem könnte auch sein das im Jason {„event“:„up“,„val“:0} die Anführungszeichen sind. Das kann ich im code ja so garnicht abbilden im String. Deswegen habe ich statt " das Hochkomma ’ benutzt. Wird das trotzdem sauber als String erkannt?

Ich habe jetzt in der Doku gesehen, dass die Commands an einen anderen Topic gehen müssen. Wisst ihr wie man über den MQTT Server einen beliebigen Topic senden kann? Der Befehl ist auch adners formatiert als der Status:

Ich habe es jetzt folgerdermaßen gelöst: Man kann das Teil auch per Telnet ansteuern. Also habe ich einen neuen ClientSocket mit der IP und Port 23 verbunden und dann:

CSCK_SendText(48581, „p1b5.val=0“.chr(13));

Und das läuft. Auslesen also per MQTT, setzen jetzt per Telnet. Dann Designe ich jetzt was schickes. Dann ist das Teil für 26€ ein Hammer Teil…

In HomeAssistant ist das tatsächlich um einiges komfortabler, aber ich habe gerade das gleiche Thema. Habe anfangs versucht Tasmota zu flashen, da gibt es auch eine recht gute Anleitung zu, allerdings verweigert das Display die WLAN Konfiuration (ich komme nicht dazu mein heimisches WLAN einzutragen; sonst klappt das bei allen Tasmota Geräten… Deswegen bin ich auf das OpenHASP Projekt gegangen… vielleicht komme ich da noch mal auf Dich zu, Du bist da schon einen Schritt weiter als ich.

Mein Skript mal probiert?

@sokkederheld
Ja, das Problem ist, dass der MQTT Topic nicht nur ein anderer Pfad ist, sondern der Befehl auch noch anders. Deswegen ging mir das mit der Telnet Lösung dann schneller.
Vielleicht bekommt es jemand auch im MQTT direkt hin. Ich habe das Teil jetzt hier mal vorgestellt:
IpSymcon Hardware
@Ingheuer
Ja das Stimmt. Sas habe ich auch gesehen, aber wollte es hier ans laufen kriegen. Wenn man sich einmal eingefummelt hat, ist es super flexibel und nicht schwer.

Das verstehe ich nicht ganz. Solange es darum geht, auf ein Topic mit einer bestimmten Payload zu publishen sollte es mit dem Skript gehen. Es ist quasi genau für deinen Anwendungsfall gemacht worden (benutze es für Ulanzi-Uhren, ähnliche Mqtt-Anbindung).

Habe mir so ein Display auch mal bestellt. Spätestens wenn ich die in den Fingern habe, kann ich dir ganz konkret weiter helfen.

Okay ja das stimmt. Wenn der Befehl nicht dem „Status-Topic“ Syntax entsprechen muss, dann würde das mit deinem Skript warscheinlich passen. Wobei ich irgendwo gesehen habe, dass der Command auch JSON formatiert sein darf.
Du kannst ja in dem anderen Thread Kommentieren wo ich das nochmal im ganzen Vorgestellt habe. Dann haben wir alles in eine Ort.