Seite 1 von 1

[gelöst] Via MQTT Boolean senden

Verfasst: 11. Dez 2020 22:44
von lenschith
Hallo zusammen,

ich möchte via openHAB und MQTT ein Boolean senden? Ich habe es mit einen Switch versucht und "true" gesendet aber das interessiert den Button nicht. Ich möchte einen Datensatz am ioBroker auf true setzen.

Ich habe als MQTT Mosquitto am laufen.
Leider schaffe ich es nicht wirklich ein true in den Datensatz zu schreiben. Ich habe auch schon in einer Facebookgruppe angefragt und die Info bekommen das es mit einer Rule funktionieren muss. Aber hier scheitere ich.

Kann mir hier jemand behilflich sein?

So sieht meine Rule aus. Es kommt auch im Datenfeld "true" an aber anscheinend nicht als Boolean sondern als String

Code: Alles auswählen

rule "Reset On"
when
  Item Reset changed to ON
then
  val mqttActions = getActions("mqtt","mqtt:broker:Mosquitto")
  mqttActions.publishMQTT("parameter/reset", "true", true)
end

rule "Reset Off"
when
  Item Reset changed to OFF
then
  val mqttActions = getActions("mqtt","mqtt:broker:Mosquitto")
  mqttActions.publishMQTT("parameter/reset","false", false)
end
Danke für die Unterstützung
Lenschi

Re: Via MQTT Boolean senden

Verfasst: 12. Dez 2020 01:15
von udo1toni
Hast Du Dir mal mit einem mqtt Sniffer angeschaut, wie der Boolean Wert dargestellt wird? "true" und "false" sind erst mal Strings. Nur wenn der betreffende Client exakt diese Strings entsprechend auswertet, werden daraus Boolean Werte.

Der (optionale) dritte Parameter bei publishMQTT() ist vom Typ Boolean, bestimmt allerdings nur, ob der Wert retained wird oder nicht.

Re: Via MQTT Boolean senden

Verfasst: 12. Dez 2020 16:18
von lenschith
Ich habe mit MQTT.fx geprüft und dort sehe ich auch nur true bzw. false.

im ioBroker ist das Datenfeld folgend aufgebaut.

Code: Alles auswählen

  
  "type": "state",
  "common": {
    "role": "button",
    "name": "reset",
    "type": "boolean",
    "write": true
    
Gruß Lenschi

Re: Via MQTT Boolean senden

Verfasst: 3. Jan 2021 21:20
von lenschith
Das Problem konnte ich lösen siehe https://forum.iobroker.net/topic/40290/ ... %A4ndern/9
Problem war der MQTT Client auf dem ioBroker