[RELEASE] Remotec ZXT-120 AC IR Controller (2015)

Here is an updated version that self updates temperature readings automatically - no more polls.

It also supports multi-tile, and adhere’s to thermostat capabilities for smartthings.

After upgrade installing, go to the device, hit the gear (settings), and hit done

On new installs, go to the gear (settings) , and fill in your IR code, and hit done.

It should be compatible with Ron’s original.

Happy New Year all,

I just set up a new ZXT-120 using Ron’s code to control a Fujitsu Halcyon Mini Split. I am using code 199 which turns on the unit perfectly, changes fan speeds and vent positions. I am however unable to change temperature setpoints. How can I accomplish this? The set point slider do not send out any IR commands. They only change the cooling/heating setpoints variables. What is the difference between this variables and the thermostat setpoint variable? Why are the reported cooling/heting setpoint variables stuck at 75 deg?

Thx all for your help.

Try the dth from the gist. It should correct your issue

I have a halcyon I use it with. Mine uses code 16

After setting temp with slider you press heat or cool to send.

I just bought a bunch of these devices. I am afraid I have no idea how to use the code to get them up and running. Is there anywhere I can get help with that?

I figured out how to get the device in my smart things app. Now I can’t figure out the code. I have a Mitsubishi Mr. Slim (MSZ-FE12NA).

Anyone know how I can figure out the remote code? I’ve been through the list the ZXT-120 came with 2x.

@Greg_Rittler The codes came in a list with the devices. I have Mitsubishi try 176.

Thanks Ron. I tried 176 and it didn’t work. I actually went through every
code that they came with 2x. I wonder if I am doing it wrong. I’m just
going to the setting here and entering the code.

Is your ZXT-120 in continuous flirs mode?
Did you configure after entering the code?
Not sure who’s device code version you are using, if mine then after the configure is successful the code should be displayed on the zxt120 device(thing) page confirming that the device reported the setting.

I have this exact unit and 176 works fine for me.

I setup the code and able to load the device on iPhone, but when test on Samsung Android phone, there are error reported, anyone have this problem?

@Ron Thanks! I wasn’t hitting configure. Now the remote is sending to the unit it seems.

However, when I send commands they don’t seem to work like the remote that comes with the unit. Swing arm on and off don’t work. Auto fan doesn’t seem to work. Right/Left sensors (the lights on the front of the unit) go off and don’t work.

Any ideas?

@Ron I’m using this for heat, I’m wondering if that is the issue. Is this made for A/C only?

I use mine for heat. Are you using my device code or someone else’s ?

I am no sure about right/left sensors etc I don’t use that feature.

I just tested the swing settings. I never use that feature. But my test reveals that it’s not really ‘swing on/off’. Swing Off seems to point down, swing On seems to point one setting higher. Not sure if I have the code mapped wrong in sending zwave to zxt-120 or if the 176 code is not mapped well. This is one thing I don’t like about the Mitsubishi and these “blind” codes. Since the Mitsubishi has no report back to see what settings are “actually” set. It is hard to use with non-standard remotes. I think if you want swing to work you will have to play with the code and perhaps the device code needs to be tweeked.

I do know the fan settings work, however the zxt-120 has 3 settings and the remote for the unit has 4 so not sure what 3 are mapped.

Dear Eric

I’ve used your code and for some reason the minimum temp is 28 degrees Celsius. can you help me on the apropriate setup?

thanks in advance

Down load the latest (recently updated)

If you are using C temps, change the line near the beginning in the method compileForC (changing false to true):

original line 31: def retVal = false // if using C mode, set this to true so that enums and colors are correct (due to ST issue of compile time evaluation)

New: def retVal = true // if using C mode, set this to true so that enums and colors are correct (due to ST issue of compile time evaluation)

save and publish for me…

Dear Eric

Sadly after doing this, if I enter the remotec menu, smartthings app crashes…

Maybe something’s missing on the procedure?

Saludos / Regards

Nicolas Calderon G.

I guess i am in need of some assistance or guidance. (zxt-120, fujitsu general Halcyon split).

after trying the incorrect steps, i removed the zxt and reset, following the procedures that were given above.

i then used the device handler from 5 months ago that Ron has. I set my zxt into Always listening, connected it in the smart things app. I went into settings and used 16 or 199 for my code, and made sure i hit configure afterwards each time. not getting any communication between the zxt and my wall unit.

live log from the web pasted below:

0e36c01d-7124-461a-ab13-7e4517115046 11:21:33 PM: warn parse called generating null map…why is this possible ? description=zw device: 0B, command: 3105, payload: 01 01 14
0e36c01d-7124-461a-ab13-7e4517115046 11:21:32 PM: debug Sensor Reporting temperatureName ZXT-120 68° map.value=68, cmdScale=C
0e36c01d-7124-461a-ab13-7e4517115046 11:21:32 PM: debug cmd.scaledSensorValue=20
0e36c01d-7124-461a-ab13-7e4517115046 11:21:32 PM: debug cmd.scale=0
0e36c01d-7124-461a-ab13-7e4517115046 11:21:32 PM: debug SensorMultilevelReport reporting…cmd=SensorMultilevelReport(precision: 0, scale: 0, scaledSensorValue: 20, sensorType: 1, sensorValue: [20], size: 1)
0e36c01d-7124-461a-ab13-7e4517115046 11:21:32 PM: info Parsing Description=zw device: 0B, command: 3105, payload: 01 01 14
0e36c01d-7124-461a-ab13-7e4517115046 11:21:30 PM: debug Parse returned [[name:battery, value:100, unit:%, displayed:false, isStateChange:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved battery is 100%]]
0e36c01d-7124-461a-ab13-7e4517115046 11:21:30 PM: debug Parse map=[name:battery, value:100, unit:%, displayed:false, isStateChange:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved battery is 100%]
0e36c01d-7124-461a-ab13-7e4517115046 11:21:30 PM: debug Battery Level Reported=100
0e36c01d-7124-461a-ab13-7e4517115046 11:21:30 PM: info Parsing Description=zw device: 0B, command: 8003, payload: 64

am i completely missing something obvious?

@UrMomsDontCare

  • What do you see in the tile which reads “Config# XXX”, if this reads the same as your configured code (16 or 199) then your configuration worked. If it doesn’t then you need to check the preferences to make sure code is set, press the button on the ZXT-120 while it is plugged in and press “Configure” tile.

  • It is possible the codes you are using don’t work with your unit, that’s tricky to prove or disprove

  • When you press “Cool” or “Heat” what does the log show ?

the config tile updates when i change it. i set it to 16 and the tile updated.

i then waited 2 minutes, pressed the cool button:

0e36c01d-7124-461a-ab13-7e4517115046 7:56:40 PM: warn parse called generating null map…why is this possible ? description=zw device: 0B, command: 3105, payload: 01 01 18
0e36c01d-7124-461a-ab13-7e4517115046 7:56:39 PM: debug Sensor Reporting temperatureName ZXT-120 75° map.value=75, cmdScale=C
0e36c01d-7124-461a-ab13-7e4517115046 7:56:39 PM: debug cmd.scaledSensorValue=24
0e36c01d-7124-461a-ab13-7e4517115046 7:56:39 PM: debug cmd.scale=0
0e36c01d-7124-461a-ab13-7e4517115046 7:56:39 PM: debug SensorMultilevelReport reporting…cmd=SensorMultilevelReport(precision: 0, scale: 0, scaledSensorValue: 24, sensorType: 1, sensorValue: [24], size: 1)
0e36c01d-7124-461a-ab13-7e4517115046 7:56:39 PM: info Parsing Description=zw device: 0B, command: 3105, payload: 01 01 18
0e36c01d-7124-461a-ab13-7e4517115046 7:56:36 PM: debug Parse returned [[name:battery, value:100, unit:%, displayed:false, isStateChange:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved battery is 100%]]
0e36c01d-7124-461a-ab13-7e4517115046 7:56:36 PM: debug Parse map=[name:battery, value:100, unit:%, displayed:false, isStateChange:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved battery is 100%]
0e36c01d-7124-461a-ab13-7e4517115046 7:56:36 PM: debug Battery Level Reported=100
0e36c01d-7124-461a-ab13-7e4517115046 7:56:36 PM: info Parsing Description=zw device: 0B, command: 8003, payload: 64
0e36c01d-7124-461a-ab13-7e4517115046 7:56:35 PM: warn parse called generating null map…why is this possible ? description=zw device: 0B, command: 3105, payload: 01 01 18
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug Sensor Reporting temperatureName ZXT-120 75° map.value=75, cmdScale=C
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug cmd.scaledSensorValue=24
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug cmd.scale=0
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug SensorMultilevelReport reporting…cmd=SensorMultilevelReport(precision: 0, scale: 0, scaledSensorValue: 24, sensorType: 1, sensorValue: [24], size: 1)
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: info Parsing Description=zw device: 0B, command: 3105, payload: 01 01 18
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug Parse returned [[name:battery, value:100, unit:%, displayed:false, isStateChange:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved battery is 100%]]
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug Parse map=[name:battery, value:100, unit:%, displayed:false, isStateChange:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved battery is 100%]
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug Battery Level Reported=100
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: info Parsing Description=zw device: 0B, command: 8003, payload: 64
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug Parse returned [[value:cool, name:thermostatMode, isStateChange:false, displayed:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved thermostat mode is cool]]
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug Parse map=[value:cool, name:thermostatMode, isStateChange:false, displayed:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved thermostat mode is cool]
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: debug Thermostat Mode reported : cool
0e36c01d-7124-461a-ab13-7e4517115046 7:56:34 PM: info Parsing Description=zw device: 0B, command: 4003, payload: 02
0e36c01d-7124-461a-ab13-7e4517115046 7:56:32 PM: debug Parse returned [[name:battery, value:100, unit:%, displayed:false, isStateChange:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved battery is 100%]]
0e36c01d-7124-461a-ab13-7e4517115046 7:56:32 PM: debug Parse map=[name:battery, value:100, unit:%, displayed:false, isStateChange:false, linkText:ZXT-120 IR Sender Improved, descriptionText:ZXT-120 IR Sender Improved battery is 100%]
0e36c01d-7124-461a-ab13-7e4517115046 7:56:32 PM: debug Battery Level Reported=100
0e36c01d-7124-461a-ab13-7e4517115046 7:56:32 PM: info Parsing Description=zw device: 0B, command: 8003, payload: 64
0e36c01d-7124-461a-ab13-7e4517115046 7:56:30 PM: warn parse called generating null map…why is this possible ? description=zw device: 0B, command: 4303, payload: 02 2A 02 E4
0e36c01d-7124-461a-ab13-7e4517115046 7:56:29 PM: debug Thermostat Setpoint Report for reportedCoolingSetpoint = 74.0 forcing state change true
0e36c01d-7124-461a-ab13-7e4517115046 7:56:29 PM: info RRG V1 ThermostatSetpointReport cmd=ThermostatSetpointReport(precision: 1, reserved01: 0, scale: 1, scaledValue: 74.0, setpointType: 2, size: 2, value: [2, 228])
0e36c01d-7124-461a-ab13-7e4517115046 7:56:29 PM: info Parsing Description=zw device: 0B, command: 4303, payload: 02 2A 02 E4
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug Sending Temp [74] for cool mode before enabling mode
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug new temp 74
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug convertedDegrees=74, degrees=74
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug No Conversion needed
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug p=1
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug state.precision=null
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug deviceScaleString=F
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug deviceScale=1
0e36c01d-7124-461a-ab13-7e4517115046 7:56:26 PM: debug state.scale=null

i can try other codes as well. the online manual only has a couple codes, while the one with the box has more.