-
Notifications
You must be signed in to change notification settings - Fork 839
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decoding Panasonic A/C problem #525
Comments
In short, the library (as of 2.5.0) does not support Panasonic A/C messages. i.e. No special send/decode functions for that protocol you captured. You will have to use the Longer answer:
|
Thank you for quick response. I'll handle it with raw data then to make it work faster. But if any further testing or additional data needed for adding this protocol, will be happy to contribute. |
Cool. For starters. Some samples like you gave but with full descriptions of what is on the remote (i.e. it's state: Power on, cool mode, temp 25, fan auto, sleep off, ...). Several of those., plus some power on and off signals. |
maybe Transformation from https://github.com/ToniA/ESPEasy/tree/HeatpumpIR/lib/HeatpumpIR for panasonic ac? |
Nice find. It looks like it might be the same protocol that was supplied. i.e. Correct structure of 8 + 19 = 27 bytes Can you confirm if that HeatpumpIR software works for your device? |
* sendPanasonicAC(), decodePanasonicAC(), & IRPanasonicAc class added. * Unit tests for those. * Code HEAVILY influenced by the work done at: https://github.com/ToniA/ESPEasy/blob/HeatpumpIR/lib/HeatpumpIR/PanasonicHeatpumpIR.cpp * Should support LKE/DKE/JKE/NKE series units. * Updated example code as required. Ref: #525
@pandemixxx Can you please test the panasonic_ac branch? It should work as it seems to decode the rawData you provided. Hat tip to @huexpub for the suggestion of code to look at. That helped immensely. |
Wow guys, this is actually beyond amazing
Temperature Up:
Air Swing:
Cool Mode:
Fan Auto:
If any further testing needed, I'm here to assist. |
Interesting. When you set Fan to Auto, it detected it as a different model of A/C Unit. I'll see if I can work out what triggered that. Btw: Can you please tell me what Model the A/C unit is, and what model the remote is too please? P.S. Thanks for testing/confirming it works. |
Oh, they all list as the power is "Off". Can you give me some with the power on, and then off, and then on again. All for the same settings, and tell me what those settings are on the remote. ;-) |
@crankyoldgit Yes, Didn't have access to the unit, now I do. AC model: CS-YW9MKD Power On:
Power Off:
btw question, do I send uint8_t state[27] with sendPanasonic? |
* Panasonic has a Fan mode that requires the temp to be 27C. * Some code lint improvements. * Detail models supported etc. Ref #525
Thanks for the extra data. Odd. All the earlier ones were marked as "Power: Off". These two look fine. DId you just capture them (previous ones) all with the remote in the "Off" setting? Anyway, those two seem to match your descriptions, so .. shrug .. nothing to fix there.
No. Use
P.S. I've just added another commit to that branch, so do a |
Yes, previously I sniffed signals from remote without AC. Now I did it in front of AC, so it went "On". If I need to do more in front of AC, just tell ;) |
If you could test |
Hi. I have a Panasonic Multi-split aircon. And I can test it on my Aircon. |
Hi @MikkelTb Feel free to try and decode what bits/bytes of the I suggest you create a google sheets spreadsheet to track what data you collect and so others (e.g. me) can see the latest data you've worked out. Basically, record what's on the remote, try to change as little as possible per sample. i.e. start only on one function, and try to find the difference between one minute and the next minute in sequence, or the next hour in the sequence. Hopefully the pattern will emerge. When you've got some Oh, an important fact is also to let us know what model number it is. It could be something we haven't seen yet. |
Yap, going to test it, I'll report all tested messages a little bit later today |
Just tested 2 commands I posted before - Power On and Power Off
Both sent with irsend.sendPanasonicAC(state) - everything seems OK, works well! If any further testing needed, I'm here for you. |
I have a question, or maybe there's some information here I couldn't find, please link if so. |
I have collected the follow information. For The on and Off settings, i can not figure out, how the value for time is calculated in the byte string. |
@MikkelTb For the timer data (Ark17 etc), it looks like On & Off timers are controlled by the 2nd and 3rd least significant bits of What is the time setting resolution for those settings? i.e .Can you set the timer down to any exact minute, or is it only to the nearest 5 or 10 minute mark? I also assume there is a Clock (current time) on the remote as well, we need to track down which bytes those are stored in and record the "time on the remote" when you capture the message. General FYIs: Oh, another [q], does your unit support Horizontal swing control via the remote? |
Looking at the time encoding, I'd suggest looking at time values of "00:00", "00:01" or "00:10" (if it does it in 10 mins steps), & "01:00", "01:10" etc. That may help making it easier to decode how the timer times are stored. |
@pandemixxx Thanks for that. That's excellent news. |
No, and yes (sort of). A/C protocols typically send the entire settings with each transmission. Simplified, the A/C Unit is dumb, and the remote has the "memory". (I'm excluding time and timers here. ;) For Panasonic, this seems to be the case. i.e. The entire "requested state" is sent in each message. That said, I try to do what you want in the Note however, that apparently "Fan" mode for Panasonic is special, it requires the temp to be set to 27C for some reason. No idea why etc. I could set up the C++ class to try to remember the previous temp settings so it doesn't "lose" it when it goes from say "Cool" to "Fan" then back to "Cool" etc. But unless you are going to use the All that class tries to do is emulate the button interactions on the physical remote in a way. Given how most people seem to use this library, they want to control the A/C via some home automation system. Those are far more powerful and probably can easily help you store your desired state more easily. However, that is far far above the scope of this library. This is just a tool to help generate/produce the IR message that the device understands. |
Hi. The on/Off can be change in 10 minuts step, And on or Off can not have the same time. Last thing, my AC does not have a Horizontal swing |
@crankyoldgit Thank you for shared info, saved a lot of time for me. |
@MikkelTb Okay, so (24hr * 60min) / 10min = 144 units, which can easily fit in a single byte (<= 256). So the time(r)s can possibly reside in a single byte, maybe. Odd that it doesn't transmit the remote's time with each message. That may mean that the timer values are relative to the time on the remote. Other than that, I'm out of ideas with out lots more data (inc. the clock time on the remote) |
@crankyoldgit When i come home from work, i will try to look at the data and try some more test, with on and off timer. But this with the "Turn Off in in 40 minutes from now" maby it do that. The reason is, the data i got at the morning, was not the same as the evening. |
That would make sense if it is behaving like an offset/relative time to what is on the remote. Lets see what your testing reveals. |
@MikkelTb I also STRONGLY recommend using Google Sheets for the spreadsheet. It saves me having to download and convert the spreadsheet (I don't have Excel ;-) You can also allow people to comment on it too and it's always up to date in real-time. ;-) |
* Make the class remember the set temp, so Fan mode doesn't overwrite it. * Adjust unit tests to cover that. * Update unit test Makefile to include protocol header files for dependencies. Ref: #525 (comment)
* Experimental support for Panasonic A/C messages. * sendPanasonicAC(), decodePanasonicAC(), & IRPanasonicAc class added. * Unit tests for those. * Code HEAVILY influenced by the work done at: https://github.com/ToniA/ESPEasy/blob/HeatpumpIR/lib/HeatpumpIR/PanasonicHeatpumpIR.cpp * Should support LKE/DKE/JKE/NKE series units. * Updated example code as required. * Panasonic AC: Improve model detect and Fan mode. * Panasonic has a Fan mode that requires the temp to be 27C. * Some code lint improvements. * Detail models supported etc. * Make the class remember the set temp, so Fan mode doesn't overwrite it. * Adjust unit tests to cover that. * Update unit test Makefile to include protocol header files for dependencies. Ref: #525 (comment) * Update sendPanasonicAC() status to confirmed.
FYI, I've merged the pansonic branch into master. It will thus make it into the next release. |
Thank you @crankyoldgit , that's great news, should I close this issue? |
FYI, v2.5.1 has been released and includes the work we've done thus far. @pandemixxx Yeah, we should probably close it. |
Hi, I'm currently trying to sniff Panasonic AC signal with IRrecvDumpV2 and here's what I'm getting
I'm not sure if Panasonic library included and how can I use this data, is there anything different should be done with Panasonic IR signal?
The text was updated successfully, but these errors were encountered: