Hi all, I run Dwellsee, a free monitoring service for Samsung heat pumps. Rather than requiring any additional hardware, Dwellsee connects to the SmartThings cloud API to pull telemetry from heat pumps that have a Wi-Fi module (typically the MIM-H04N I think). Users simply link their SmartThings account, and the system polls their device status every 5 minutes.
Currently around 85 heat pumps are actively logging data. Here’s a 12-hour snapshot from my own unit to give you a sense of what I can show - flow temperatures, return temperatures, flow rate, compressor frequency, outdoor temperature, operating mode, and a few other things.
The 5-minute polling resolution is obviously nowhere near the second-by-second data you’d get from proper monitoring hardware, but for general performance monitoring, seasonal comparisons, and spotting configuration issues, it’s proven genuinely useful. It’s already helped several users in the Samsung ASHP Facebook group solve issues with their heating.
To decode the data from the SmartThings API, I need known truths from reliable monitoring hardware I can compare to the data from the API. This is where I could use your help!
Why help? I’m making all of my findings publicly available here: Decoding Guide. This project is meant to be ‘for the greater good’ of users being able to monitor their own heating systems with data that’s ‘good enough’, not to replace the need for external monitoring hardware for those that really want to know what’s going on. With this documented knowledge, anyone can now query their device without using my site, and implement their own findings. I hope to push what I’ve found into Home Assistant at some point too.
The Setup
The SmartThings API exposes a capability called samsungce.ehsCycleData, which returns hex-encoded byte strings - one from the outdoor unit and one from the indoor unit. These appear to be a subset of the registers packaged up for cloud delivery. The data refreshes roughly every 5 minutes ONLY when the system is running.
I’ve spent the last few months reverse-engineering these byte strings across five different Samsung device platforms, and I’ve managed to decode a good number of the fields. But there are still plenty of unknown bytes, and this is where I’m hoping some of you might be able to help cross-reference.
Worked Example - Extracting Flow Rate
Let me walk through a concrete example. Here’s a raw indoor cycle data hex string from an API call:
4E054E50050500D26400000000000000000100000001B3B30000006F05054B
This is 31 bytes when decoded from hex. To extract the flow rate:
- Convert the hex to bytes: [0x4E, 0x05, 0x4E, 0x50, 0x05, 0x05, 0x00, 0xD2, 0x64, …]
- Flow rate lives at byte 7 (zero-indexed): 0xD2 = 210 in decimal
- On 31-byte and 36-byte devices, divide by 10: 210 / 10 = 21.0 LPM
(On 24-byte devices like the monobloc, the byte value is used directly — no division needed.)
How you can help
If you’d like to help, you’ll need a Samsung ASHP with SmartThigns linked up. You could either query the API yourself or sign up on Dwellsee. If you can then provide known good values at 5m intervals (or give me direct access to your data) - I can compare this to the hex data recoded for your device.
If you want to prod at your hardware yourself, I’ve released some python here: GitHub - pookey/samsung-heatpump-smartthings
(note: This might seem like a repost, but my original post was deleted because I wanted to post with more detail about what I’m trying to do. A HUGE thanks for the mod team here for giving constructive feedback on framing this post for the audience here!)