Seite 1 von 1
[V4.5 IP6] MQTT ACK=False mitsenden (Intex Spa verlangt das)
Verfasst: Mo Jun 09, 2025 5:53 pm
von Tomtheripper
Hi Leute,
Ich habe einen Intex-Spa-Whirlpool über den ioBroker-Adapter und MQTT am TW am Laufen. Temperaturen usw. sehe ich.
Zum Schalten allerdings (z.B. die Heizung anschalten) reicht dem Intex nicht nur der Boolean-Befehl, sondern verlangt immer ein ack=false, um den Befehl als Schaltbefehl zu erkennen. Wird das nicht mitgesendet, wird auch nichts An- u. Ausgeschaltet.
Wie mach ich denn das jetzt am dümmsten?
Schöne Grüße
Thomas
Re: [4.5 IP6] MQTT ACK=False mitsenden (Intex Spa verlangt das)
Verfasst: Mo Jun 09, 2025 5:59 pm
von StefanW
Hi Thomas,
bitte mehr Informationen. MQTT ist in reines Transportprotokoll, es definiert KEINE Datenstrukturen und Datenkodierungen. Gar nicht.
Was also ein MQTT Gerät erwartet ist Glaskugel. Wobei ich bislang noch nie ein MQTT Geräte gesehen habe, das Binär kommuniziert, es mach daher wundert, dass es sowas wie einen "Boolean-Befehl" geben soll, weil das wäre eine binäre 0 oder 1 als ein Bit.
Daher bitte die Protokollbeschreibung veröffentlichen, man müsste schon wissen, wie die Kodierung aussehen soll. Wobei dies auch die von io:Broker sein kann.
lg
Stefan
Re: [4.5 IP6] MQTT ACK=False mitsenden (Intex Spa verlangt das)
Verfasst: Mo Jun 09, 2025 7:16 pm
von Tomtheripper
Hi Stefan,
ja, das war zu hasplig, sorry:
NodeRed_ACK_False.png
Eine TW-Logik errechnet den PV-Überschuss und gibt den Einschalt-Befehl (True). Momentan gehe ich den Umweg über NodeRed, um dem True-Befehl (nicht String) noch einen "ack=false" anzuhängen:
return {
topic: "intex/0/localtcp/control/Heat",
payload: { val: true, ack: false }
};
damit der Schaltbefehl von Intex (offline, Intex-Adapter in ioBroker) als solcher akzeptiert wird und nicht nur als (Status)meldung behandelt wird.
Ich wollte wissen, ob das MQTT-Transportprotokoll im TW (ohne Umweg über NodeRed) modifiziert werden kann.
Grüße
Thomas
Re: [4.5 IP6] MQTT ACK=False mitsenden (Intex Spa verlangt das)
Verfasst: Mo Jun 09, 2025 8:00 pm
von MrWilson
Hey Thomas,
du legst unter dem Topic zwei publizierende Transaktionen an. Einmal für „ack“ ohne Auslöser und einmal „val“ mit Auslöser für alle Objekte dieser Transaktion. Das „val“ verbindest du mit deinem Einschaltbefehl und das „ack“ musst du hilfsweise über eine Logik oder der Visu mit dem false beschicken, damit der Wert vorgehalten wird.
Gruss Willy
Re: [V4.5 IP6] MQTT ACK=False mitsenden (Intex Spa verlangt das)
Verfasst: Di Jun 10, 2025 5:14 pm
von gbglace
So im Sinne der JSON Struktur als zwei Objekte im JSON.
Oder mit dem Holzhammer dein AN/AUS geht in eine TWS String-Logik, die Dir genau den Inhalt der geschweiften Klammern zusammenbaut.
Variabel ist dabei das true/false hinter dem Textbestandteil val:
(das dürfte auch nah an dem sein was die beiden function nodes im NR machen. und der switch vor denen wird auch erst noch aus dem 0/1 des KNX nodes die Wörter true false bauen.)
Die obere Variante ist natürlich im Sinne des MQTT Datenmodells sauberer, Du musst dann nur sehen wie Du den Fixwert false für das Objekt "ack" einmalig und regelmäßig nach reboot des Servers da rein bekommst.