Rheem EcoNet Integration maintained by Kris Linquist

Hey @klinquist, I think I found a small issue with the driver. It looks like if the setWaterHeaterMode is used to set waterHeaterMode to Vacation, then the attribute will be set to Vacation with a trailing space. Not a big deal (easy work around), but for folks like me who are using the attribute in automation, maybe you want to change that? Took me a few loops to figure out what was going on!

Didn’t check the other values for similar issues but can if it’d be helpful.

EDIT: Actually I don’t think it’s just a trailing space (or 2-3 spaces). I can’t get RM to return TRUE when testing the custom attribute in a conditional statement.

Hm - can you maybe put some characters around this debug line to see if you're getting trailing spaces?
Rheem_EcoNet_Water_Heater.groovy line 206:
log.debug "Setting mode to ${waterheatermode}"

Should definitely be working OK based on this:

       command "setWaterHeaterMode", [[name:"Mode*","type":"ENUM","description":"Mode","constraints":["Heat Pump", "Energy Saver", "High Demand", "Normal", "Vacation", "Off"]]]

Might want to have RM set a hub variable to the value it's receiving and then look at the hub variable to see what it is actually getting.

This is so weird. My water heater is in Vacation mode currently. I don't know if there's a way to change the modes from within Rheem/Econet (at the physical device or in the app), but I can tell you confidently I haven't made any changes to the modes -- what they are nor what they're labeled.

Check out the RM rule below that shows the water heater contains "Vacation", but does not equal "Vacation" literally. @klinquist, I looked at the line 206 of the driver and I can see why it should work fine. Anyone have any ideas? I can work around it, but it's really odd.

Two other clues I hope are helpful:

  1. from the device details UI, if I set water heater mode to Vacation using the dropdown, the value for waterHeaterModel under "Current States" is listed as VACATION in all caps. And the the above rule that assigns that value to a hubvar also sees it as all caps.
  2. When I put some characters around the debug line per @klinquist's suggestion, I can see the W/H model being set accordingly in the logs, but the device attribute remains the same.

@klinquist, any troubleshooting you can recommend?

I have a Rheem electric water heater and when using this driver, the Thermostat Scheduler app will not work.

I was able to recreate the schedule I wanted in RM fairly easily and this is working.

image

However, when I use the "Set Thermostats" command in RM and tell it to set the temperature, it generates 4 events for each action.

@klinquist any chance you’d change the waterHeaterMode attribute from an enum to a string? As an enum, AFAIK, I can’t use Rule Machine to trigger off a change in the value like I could with a string attribute.

TIA…

How about I made a new field waterHeaterModeString for you to test?

Edit: Actually, it's probably easier for you to directly use the numeric values that Rheem sends... I could just create a waterHeaterModeNumber.

Can you compare an integer (1) or does it need to be a string? ("1")

        case 0:
            return "OFF"
        case 1:
            return "ENERGY SAVING"
        case 2:
            return "HEAT PUMP ONLY"
        case 3:
            return "HIGH DEMAND"
        case 4:
            return "ELECTRIC"
        case 5:
            return "VACATION"
1 Like

Would you mind making the change yourself?

After line 20:

        attribute "waterHeaterMode", "ENUM"

Add

        attribute "waterHeaterModeRaw", "NUMBER"

Then after line 133:

device.sendEvent(name: "waterHeaterMode", value: mode)

Add

device.sendEvent(name: "waterHeaterModeRaw", value: payload."@MODE")

Either would be great!

Yeah no prob …. Will try and report back …. Thx!

Edit: the raw Water Heater Mode works great, thanks!

Hey @klinquist, I wonder if I have a version control issue. The code you referenced was on line 22 not line 20 of the driver. I checked your GitHub in the first post and noticed the same?

@klinquist, what came about after all the tinkering you did earlier this year? You mentioned connecting directly to the water heater’s Wi-Fi to extract info. Has any of that been turned into something for the end user?

Basically looking for current heating state and current water temperature, if possible.

2 Likes

@klinquist i'm also interested in how you log in as the water heater! can you post how to modify your code to make be able to do this? thanks

@klinquist described how to log in to the water heater in detail in this post:

@aaiyar yeah that's how to get the credentials which i got following his instructions. but he doesn't tell how to use the credentials to log into the rheem server.

Use an MQTT client.

you're not actually familiar with this integration? because you can't just log into the rheem mqtt server with the credentials. there's an authentication process.

Actually I am. Have you read the driver code?

it's for user authentication with an email address. the hpwh credentials don't have an email address.