Mqtt switch not responding to On / Off value's

I am running openHab 3.1 and am trying to intigrate my Fujitsu AC with a esp8266 running Tasmota. The temperature value and mode settings are getting read and put into the item’s string value. The power status is not getting its value. Can anyone see what i am missing?
This is my thing setup:

Thing topic AC_Keuken "Tasmota IRSend AC Keuken" @ "keuken" {
        Type string : reachable "Reachable"              [ stateTopic="tele/tasmota_21659E/LWT" ]
        Type switch : power     "Power"                  [ stateTopic="stat/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.Power"]
        Type number : setpoint  "temp ingesteld"         [ stateTopic="tele/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.Temp"]
        Type string : mode      "mode"                   [ stateTopic="tele/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.Mode"]
        Type string : fanspeed  "Ventilator"             [ stateTopic="tele/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.FanSpeed"]
        Type string : swingv    "SwingV"                 [ stateTopic="tele/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.SwingV"]
        Type string : swingh    "SwingH"                 [ stateTopic="tele/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.SwingH"]
        Type string : quiet     "Stil"                   [ stateTopic="tele/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.Quiet"]  
        Type string : econo     "Economisch"             [ stateTopic="tele/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.Econo"]        

My Items:

String Tasmota_ACIRSend     "Tasmota IRSend LWT"                            { channel="mqtt:topic:mosquitto:AC_Keuken:reachable"}
Switch ACKeuken_Power       "Airco draait"                      <climate>	{ channel="mqtt:topic:mosquitto:AC_Keuken:power" }	
Number ACKeuken_Setpoint    "Temp Ingesteld"                    <climate>   { channel="mqtt:topic:mosquitto:AC_Keuken:setpoint"}
String ACKeuken_Mode        "Modus"                             <climate>	{ channel="mqtt:topic:mosquitto:AC_Keuken:mode" }	
String ACKeuken_Fanspeed    "Ventilator"                        <climate>	{ channel="mqtt:topic:mosquitto:AC_Keuken:fanspeed" }	
String ACKeuken_SwingV      "SwingV"                            <climate>	{ channel="mqtt:topic:mosquitto:AC_Keuken:swingv" }	
String ACKeuken_SwingH      "SwingH"                            <climate>	{ channel="mqtt:topic:mosquitto:AC_Keuken:swingh" }	
String ACKeuken_Quiet       "Stil"                              <climate>	{ channel="mqtt:topic:mosquitto:AC_Keuken:quiet" }	
String ACKeuken_Econo       "Economisch"                        <climate>	{ channel="mqtt:topic:mosquitto:AC_Keuken:econo" }	

This is received by the mqtt server:


This is in my logs:

16:02:07.691 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'ACKeuken_SwingH' changed from Off to Auto
16:02:07.692 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'ACKeuken_Mode' changed from Auto to Cool
16:02:07.693 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'ACKeuken_Setpoint' changed from 16 to 21
16:02:07.693 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'ACKeuken_SwingV' changed from Off to Auto

For the moment just trying to get the AC’s state in to OH next step will be sending a change from OH to my AC

You’ll probably want to look at the switch channels on=/off= mapping for text “On” and “Off”?

@rossko57 like this in the things file?

Type switch : power     "Power"                  [ stateTopic="stat/tasmota_21659E/RESULT", transformationPattern="JSONPATH:$.IrReceived.IRHVAC.Power", on="On", off="Off" ]

tried that and made no difference.

You’ll probably need to restart the binding to properly act on small things file edits.

IMHO you are missing the commandTopic for the switch channel Something like:


Additionally I would expect the other channels that need to send a command to the device also are lacking the commandTopic.

commands i will need to send in a rule because it needs to send the complete mqtt command like i posted in my first post.
The bundle restart did not solve the problem.
I changed to a JS transform

Type switch : power     "Power"                  [ stateTopic="tele/tasmota_21659E/RESULT", transformationPattern="JS:OnOff.js"]


(function(dataString) {
    var data = JSON.parse(dataString).IrReceived.IRHVAC.Power;
    var switchState = '';
        if (data == 'Off') {
            value = 'OFF';
        } else {
            value = 'ON';
    switchState = value;
    return switchState;

This works