Rheem EcoNet Integration maintained by Kris Linquist

Also, a lot of the fields have gained ornaments that probably break parsing. (pretty formatting manually added)

    @MODE:[
        constraints:[
            enumText:[Off , Energy Saver , Heat Pump , High Demand , Electric , Vacation ],
            enumTextIcon:[ic_device_off.png, ic_energy_saver.png, ic_heat_pump.png, ic_high_demand.png, ic_electric.png, ic_vacation.png],
            lowerLimit:0,
            upperLimit:5],
        status:Heat Pump ,
        value:2],
    @SETPOINT:[
        constraints:[
            error:[],
            formatDecimal:0,
            isConversion:true,
            lowerLimit:110,
            units:deg F,
            upperLimit:140,
            warning:[
                [ message:CAUTION HOT WATER. Contact may cause serious burns to skin, value:121]
            ]
        ],
        value:126
    ],
 

@ tomuo16103 Can you try this (paste in the app/driver)?

https://github.com/klinquist/hubitat-rheem/tree/v1.0.4-RC

You can see the changes here:
https://github.com/klinquist/hubitat-rheem/compare/main..v1.0.4-RC

Let me know if you find other fields that were changed...

So far so good

  • thermostatOperatingState : heating

I'll let you know in an hour if it turns off correctly.

1 Like

Turned off as expected.

MQTT Message was: {"@RUNNING":"","@AWAY_MSG":"","@AWAY":false,"transactionId":"AUTOPOLL_2023-01-23T22:56:58.717Z","device_name":"XXX","serial_number":"XXXX"}
2 Likes

Thank you very much for testing, I have merged my PR.

2 Likes

I was using the old version of this and having problems. However, it actually wasn't impacting anything. My water heater was still changing its heat setpoint when I wanted it to. But I decided it would be best to fix the issue. So I deleted everything and am trying to recreate it. It's been so long since I set it up that I'm confused.

So I've got the Rheem app and a device using the Rheem driver. That parts fine. I can control it without issues. It sees changes I make using the phone app without issues. My confusion comes now that I am trying to create a new schedule. I am using Thermostat Controller 2.0 and last time I was using the older version which I presume was 1.0.

My confusion came when I was trying to find info on this restriction option.

I don't want the scheduler to change the temp when that switch is on. But what does the "turn thermostat off when restricted" option do? Is turning off someone different from disabling? So I started searching this forum for Thermostat Scheduler and my ADHD led me down an unrelated rabbit hole.

I see threads where people say don't use the thermostat scheduler to directly give commands to the thermostat. Set up a Thermostat Controller and schedule that instead. But I don't really know what the difference would actually be or what purpose the thermostat controller app actually fills. That just seems like creating more failure points to me.

EDIT: Maybe it doesn't matter. If I open Thermostat Controller 2.0 and select my water heater as the thermostat to control, I get this error:

For those of you who are more familiar with the Rheem EcoNet Hybrid units, I noticed that I can’t set the heat setpoint to below 100 degrees F using the EcoNet app Normally that wouldn’t be a problem,, but we use them at a second home where we want to turn down the temp to 50 degrees F (more or less) while we’re gone for extended periods.

And don’t worry, we always boost the temp for a few hours every week (whether we’re home or not) to kill Legionnella bacteria.

So I’m really just asking a technical question: is 100 degrees really the minimum? Guess I could just turn off heat mode, but that’s an overly blunt instrument.

I have a standard electric water heater. I can't set it below 110, either in the app or on the unit.

In case anyone runs into the same question, it turns out that Vacation mode sets the temp at ~ 65 degrees F. The UI won’t indicate the changed setpoint, but that’s how you get it done just the same.

1 Like

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!