So the wired controller has an IR receiver so I can technically use one of my minisplit remote (picture below) to control it at a distance and it works. But it appears that the wired controller won’t read/receive the follow me temperature from the remote even with the mode enabled. Not sure if I am missing something here but I found that interesting. Part of me was thinking that I could put an IR blaster near the wired controller and transmit the follow me temperature but it looks like the wired controller is ignoring the following temp for the remote so I am not sure if it is a viable plan. Please let me know if anyone has succeeded.
The WF-60A1 has a IR receiver (discussed a few replies above) but it appears that it is not working/receiving anything from my IR tx. Do you think adding the display board you mentioned would work if I have the wired controller also connected or are they mutually exclusive? The last problem that i am trying to solve is that my airhandler services 2 rooms, I want to put the temp sensor a bit further away from the wired controller so the temperature readings are more accurate. I don’t mind adding a display to my airhandler, I am just curious how they are going to interoperate.
Hi, great! @dbaq Thank you very much for the pictures. (A wish for some details below**)
This controller looks like a Midea “KJR-120X2”. (12V Version) using the XYE Bus (and probably 12V supply voltage)
In the Manual of the controller is written, that it used the follow me function to itself report the temperature at its installation location to the connected ac. (There is an additional feature to set a compensation temperature for the sensor)
It can enabled/disabled via the func button (it is activated when a “person” as symbol is shown in the display on the right.
I think that midea just has the ability to either use the internal sensor or some external “thing” that reports a follow-me temperature. To now, i did not find any indication that midea can have 3 sensors that can be given priorities (like internal, display-sensor, follow-me)
The documentation does not state, whether the wired controller repeats IR signals that were sent by a wireless remote control.
** Can you determine the written values of the components on the rigth (backside) of your pcb?
IC700; TVS201 and D203 - those components seem to be the difference (+ the buzzer) to a KJR-120X1 (5V supply) version.
@dbaq just another thought - if you get the follow me mode from your remote (standard wireless) working then your controller should be able to claim follow-me function with the microcontroller-board too! This may a way to test it.
How do you know the ‘follow me’ is not working through that thermostat? Usually the little person icon (show on the thermo in your pic) means follow-me is active.
The magic ‘current room temp’ value isn’t available to be set via the XYE or UART communication mechanisms, which is why the IR blaster is needed. Those upgraded thermos that use the 4-wire CN40 (Modbus protocol) I believe can set that value if they have their follow-me mode turned on. Perhaps it won’t relay that value sent via a remote, but I always assumed it did.
The ‘DISPLAY BOARD’ display – it’s surprising yours didn’t come with it – is meant to exist with other controllers. It’s basically the ‘technician control’ that can display the unit’s status and any error codes. It also has the IR receiver for basic control with a remote for installs where the unit is line-of-sight to a remote.
I don’t think anyone ever figured out how the 4-wire/modbus themo sends the unit the room temp (follow me), so I don’t know how it would interact with the other DISPLAY BOARD sending the follow me IR signal. If you can sniff your thermo’s communication with ‘follow me’ on, you can probably figure out how to do everything through that and not need IR.
according to the documentation of the XYE bus wall mount remote controllers, they can transmit the local temperature using the follow me function. (The new wall mount controllers since KJR-120* generation all have a temperature sensor and the ability for activating the follow me mode for measuring at the mounting location) This function can be switched on/off on the controller.
The previous generation of wall mount controllers KJR-29* and KJR-90* do not have this function but some work on the same bus.
Is is currently nowhere documented which command sequence is transmitted and if the commands even can be send by the uart (“usb”-like) interface on display modules.
In a highwall model (All easy blue R290 == Xtreme save blue) the system is built like that:
Mainboard → 4 wires (2x power, 2x data)
display board
4 wires “usb”(uart) → wifi dongle
3 wires (5v, gnd, i/o) → adapter and relais-board
adapter and relays-board
4 wires (xy rs485, 12v, gnd) to wall controller
→ the follow me command is either comming to the display board via IR (from wireless remote) or from the XYE bus
@brianHa, alright, I did a bit more testing and you are correct.
The wireless remote does send the follow me temp to the wired controller and the wired controller does receive it (and send that temp to the airhandler as expected) but the wired controller does not display it. That’s why I got it wrong yesterday.
If both the wireless remote and the wired controller have the follow me enabled, the temperature from wireless remote has the priority and overrides the one from the wired controller from what I can observe (but the wired controller does not display it).
So technically speaking, I should be able to have an IR blaster pointing at my wired controller and use this IR transmitter component.
The IR receiver on the WF-60A1 does nothing still for me though. Even after turning off the follow me mode on the wired controller in the other room. So I would need that extra display near my unit to have it work.
I agree with you that the follow me temp value is transmitted over the wire with my wired controller so there must be a way to transmit it without IR but I don’t think anyone has found a way yet. The fact that my wired controller is daisy chained with the WF-60A1 to the CN40 port and the follow me from the wired controller still works mean we should be able to transmit it without IR somehow.
I think the 4-wire (CN40) hookup the better thermostats use is actually modbus. The 4 wires are A, B, Vcc (5/12V), and ground. Some thermostats add terminals to access modbus from (HA/HB), and some units have PQE terminals which I think is also the same thing.
XYE is a Midea-proprietary protocol (CCM/central controller) that sends longer packets than Modbus register query/set. There are devices that can convert the XYE/CCM protocol to modbus (also BACNET and others), so I don’t think they’re the same thing, though some thermostats can do either.
After reading everything available on the web regrading XYE, I’ve never seen anything that is capable of setting the room/follow me temp value. However, it appears possible to do so with the 4-wire modbus, since the newer thermostats do just that.
Looking at the CCM/XYE controllers and CCM → modbus bridge devices, it does appear that the protocol is limited to setting modes and fan speeds and querying basic temp data and problem codes. The advanced config parameters and follow-me room temp don’t appear to be settable. In fact, one of the CCM->modbus devices implements its own control logic to simulate setting this value: it tweaks the setpoint to force the unit to run/stop.
There’s also the USB/UART on some models (you mentioned), which appears to have the same limitations and similar data queried as XYE. Oh, and also the 5-wire (Vcc, Gnd, Unit On, IR Led + and IR LED -) used by the old thermostats. It communicates with a wired version of IR (one way only), but it can do ‘follow me’, though mine never worked correctly.
There’s also ‘special’ stuff that can be set via the IR protocol. Newer remotes support ‘engineering mode’ where internal settings (temp compensation, etc.) and static pressure can be set. Queried values can be read directly on the 7-segment display.
Please read that what @dbaq and i wrote. XYE Bus is simply something midea proprietary over RS485 electric interface. Most commands are already extracted but seemingly from older wall mount remotes, which did not have local sensing while using the “follow me” function.
There are some projects on GitHub and in the web, which document the frames that were known up to then.
Modbus requires always a converter (some displays and some units have dedicated modbus ports but this is not XYE) @dbaq wrote before: his controller is indeed sending follow me commands over XYE which is connected to port 40.
Currently nobody figured out if “follow me” is transmittable over the uart (usb port) for the wifi dongle too.
Midea is somehow confusing, because they have multiple bus-systems side by side.
I agree that HAHB uses probably same commands as XYE signalling does.
Maybe we’re saying the same thing, but have you confirmed that the CN40 port (4-wire, RS485) is actually using the XYE (RS485, Midea-specific CCM) protocol? I suspected CN40 and XYE are not the same (ignoring the power wire), since my ducted unit has both ports as well as solder pads for HA/HB (modbus RTU).
If all the RS485 ports (XYE and CN40) use that Midea CCM protocol, then it would be great if you could sniff the thermo’s comms. The Codeberg XYE repo only has command/queries that the CCM (central management) controllers use, and those don’t send follow-me temp or advanced sensor queries.
The fact that the XYE/CCM protocol documents the command byte as starting at 0xc0 leads me to believe that there are other valid commands/queries that haven’t been documented. @exciton found another set command (0xC4) which can change the unit (US models) to Celsius mode from Fahrenheit, but it’s not clear to me how/where he figured that out.
I looked onto the diagram of my unit - it is written there that it is Port XYE 12V5V with in my case 12V. It is stated that it is RS485 (not Modbus) and uses CCM protocol.
I just got my 17223000000003 but I didn’t realize that both my board has a 10pin connector and the display has a 10pin assembly. Do you have a male/male adaptor on yours or am I missing something? the 17223000000003 display is listed as compatible with my airhandler (40MBDQ18) so I might be missing something still.
Yeah, that looks like the correct part. I didn’t even realize that was separate - my Pioneer unit came with the Yellow->Black adapter already connected to the CN10A port on the motherboard. The display board could plug directly into the ‘black’ end, which was dangling off. The wires are about an inch long on my pre-connected Y->B adapter, so with the display wire length, it could just make it to the slots on the electrical panel cover (though it doesn’t mount securely.)
Pioneer actually included an extension cable for the 10-wire display board (after the adapter) of IIRC 6-7 feet long. I assume this is to allow that board to be relocated somewhere (return duct box, perhaps) where the remote could actually control it if installed in the ceiling. It would have been better if they included the nice controller (KJR-120N) instead of the trash one (KJR-12B) instead.
Awesome! Looking forward to seeing if you discover some additional query/set commands besides 0xC0, 0xC3, 0xC4, 0xCC and 0xCD.
Assuming XYE and CN40/4-wire are the same thing, documenting this protocol might allow fine-grained control of the unit. The ‘Dr Smart’ tool Midea sells (https://youtu.be/UgYZLTLlXqM?t=392) for technicians can use 485 to set internal values like the compressor speed, so it’s theoretically possible to rewrite the tempature control loop to not allow insane temp swings.
I was not aware of this tool, due there is the engineering mode which seems to have the same parameters on the wall mounted units. With the remote control you can step into it and set parameters. The documents for that are in the internet But that means, when you have those parameters in the outdoor unit, and you can either query it there with the diagnostic tool OR on the display unit of a wall mounted ac, the system would have an interconnected bus.
I still wait for material and have to print a box for my adapter pcb, then i can make multiple test runs (and see if the special wireless remote control parameters are passed to my ac along the xye bus)
XYE is the best option if your unit has the terminals, however, at least for now, you can’t do a ‘follow me’ temp through XYE. You either have to use an IR LED aimed at the display board or I think there were previous posts about tapping into the IR logic line directly with a non-modulated (IR) signal.
I wanted to share an update for those using follow me action. I’ve created a pull request on ESPHome that improves the functionality of the Follow Me action for Midea AC units, specifically allowing temperature updates to be sent in Fahrenheit. This should resolve an issue where Midea AC units would switch to Celsius by default when receiving updates from ESPHome, which was inconvenient for users who prefer Fahrenheit.
The action, midea_ac.follow_me, now supports temperature input in Fahrenheit. Here’s a quick example of the YAML setup:
temperature: Sets the external room temperature for the AC to use.
use_fahrenheit: When set to true, sends temperature in Fahrenheit (defaults to false, Celsius).
beeper: Optionally enables a beep on each update (defaults to false).
I’d love some help testing this to ensure it works well across various Midea based AC models. If anyone here is able to test it and share feedback here or on github pull request, it would be greatly appreciated!
For more info how to test it, take a look at pull request external component example. Syslog is not needed.