-
Notifications
You must be signed in to change notification settings - Fork 28
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
Enhancement: Empty water tank sensor for humidifiers #34
Comments
Oh yeah, this is a good enhancement for sure. I don't have any of these devices but I'll dig around in the Android app's code to see if I can figure out the mqtt sensor label for the water tank. |
Okay, did some digging and it appears to send a fault code |
@richlawson come to think of it, if you own one of the humidifier devices then you could help a lot here! I have a tool called dyson-mqtt-listen. You can grab the release here: https://github.com/dotvezz/dyson-mqtt-listen/releases/tag/v1.0.0 If you happen to have Go installed, you can just use it to install. go install github.com/dotvezz/dyson-mqtt-listen/cmd/[email protected] Once you've downloaded or installed the binary, run it with the # if you used `go install`
dyson-mqtt-listen -address "192.168.1.207" -ssid "DYSON-NM7-US-REA2128R-475" -wifi-password "zxcvasdf"
# if you downloaded the linux binary
chmod +r ./dyson-mqtt-listen
./dyson-mqtt-listen -address "192.168.1.207" -ssid "DYSON-NM7-US-REA2128R-475" -wifi-password "zxcvasdf"
# if you downloaded the macOS binary
chmod +r ./dyson-mqtt-listen-darwin
./dyson-mqtt-listen -address "192.168.1.207" -ssid "DYSON-NM7-US-REA2128R-475" -wifi-password "zxcvasdf"
# if you downloaded the Windows binary
dyson-mqtt-listen.exe -address "192.168.1.207" -ssid "DYSON-NM7-US-REA2128R-475" -wifi-password "zxcvasdf" Let it run for a few minutes. Hopefully you see something like the following:
Once you see the mqtt data flowing, pull out the water tank, empty it, and put it back in. Let it keep running for a few minutes, then if you can paste the results in a gist or something for me to analyze, that would be AWESOME. |
Ahh, and if your device didn't ship with the wifi password stickers, you can use the flags |
Hi @dotvezz , thanks for the clear instructions for how to get everything running. I ran the Here's a regularly-reported status message:
This was where it was briefly running the humidifier and then stopped due to the tank not having enough water:
That said, this is based on what you suggested. It basically doesn't run when it's waiting for the tank to be filled (displays an icon) unless you turn off the humidifier portion. Instead I slowly filled the tank and kept filling it up a little bit to where it would start running, and I'm going to continue running until it runs out. In case it's helpful, here's a snippet of what it output as I was turning it off, filling up the tank a little bit more, and then running it again, until it started running:
I didn't see any instances of I'll let you know when it runs out of water and send the message. |
Even if we don't see I see your |
It just ran out of water. This is the corresponding state change:
In case it helps, here are the 2 status messages sent out immediately before and afterward, along with a repeat of the state change to provide the context:
Thank you for working on this! |
@Paul-McNeice this thread covers one of the questions I had for you. As far as I can tell, there doesn't seem to be a way to read water level over MQTT. Can you confirm whether that's the case or if I'm just missing something? edit: Ohhh and I was curious about that |
@dotvezz there's no way to read the water level - just the fault that's raised when it's empty as you've already discovered. I don't remember ever doing anything with |
Thanks for the confirm - one thing that I've struggled to figure out is how to read that fault code. Digging in decompiled Kotlin only gets me so far. Is there any chance the empty error isn't available through MQTT, but it actually requires an internet connection to pull from appapi like the robot cleaning maps (and I think fan sensor history)? |
You should be able to get it by looking at MQTT messages on the |
Interesting, interesting! That could be super helpful. I'll dig around a bit. |
Hi, did yo have any further progress on this? |
{
"msg": "CURRENT-FAULTS",
"time": "2023-12-20T15:57:48.000Z",
"product-errors": {
"amf1": "OK",
...a bunch more...
"uled": "OK"
},
"product-warnings": {
"fltr": "OK",
"tnke": "FAIL",
"tnkp": "OK",
"cldu": "OK",
"etwd": "OK"
},
"module-errors": {
"szme": "OK",
...a bunch more...
"szav": "OK"
},
"module-warnings": {
"srnk": "OK",
...a bunch more...
"nwss": "OK"
}
}
I'm happy to try and figure out how to add support for this and open a PR, but will need a bit of time to figure out where the mqtt subscriptions happen in the first place and how to add one! |
I think to support this, we'll need to subscribe to the faults event channel. I threw together adding a I'm not sure if it's safe to just always subscribe to Also, the most reliable way to get a new set of Also not sure if/how to make a new |
@lgladdy thanks, that mqtt dump is exactly what I needed! |
hoping this enhancement is figured out |
Just checking if this is worked on? |
Any progress here? |
@RC-Thoughts Hey! I haven't forgotten about this, but time has been precious lately (my toddler has been toddlering). Between life and work, I've mostly been handling compatibility fixes for new Home Assistant versions over here. That said, I promise this is still something I want to do. Edit: And of course, if anyone wants to help contribute, that would be awesome too! |
Would it be possible possible to add the ability to add a sensor for when the water tank is empty on humidifiers? It would be great to be able to automate notifications for this.
Someone had raised this issue in the past in the upstream repo:
shenxn/ha-dyson#129
I took a look at https://github.com/libdyson-wg/libdyson-neon/blob/main/libdyson/dyson_pure_humidify_cool.py (as well as any relevant issues), and I didn't see any mention/support. I think something would probably need to be added there, so I can open up an issue in that project if it makes more sense.
I also did some checking to see if there's any sort of API documentation or anything for Dyson, and I wasn't able to find anything. Was everything discovered for this integration by monitoring network communication locally, or did I completely miss something?
By the way, I just switched over today from shenxn/ha-dyson, and everything went very smoothly. Thanks for forking and updating this!
The text was updated successfully, but these errors were encountered: