Rheem Hotwater heater, econet?

No off option and HA checks for usage info which isn’t available for my model.

Off isn’t an option, the only option for off I believe is vacation mode which doesn’t actually turn it off, but lowers the temperature. You tank not having usage is normal as well.

Can you confirm the official app doesn’t have either of those functions?

Official app has an off operation but they call it disabled. It doesn’t have usage. HA log keeps showing an entry about trying to get usage info. Better not to have it if not supported so there’s less wear on the SD card and makes room for other logs

Should only see the usage not supported log once at startup. There is no way to know if it is supported unless HA makes the call to see what happens. Wonder what the disabled function actually does? Could be similar to what @Travi5 got from support which was something like (off/disable is just vacation mode) it sets the temperature to 90 or something. Since it doesn’t come back in the modes I am not sure how to set it.

When I set the water heater to disable, I hear a click coming from it and the display says OFF so I am assuming it goes off completely. Rheem says that setting the electric water heater to vacation mode will keep the water at 60 degrees F. I haven’t used vacation mode in a long time but if I remember correctly, when I set it to vacation mode, the display says VACA. The ST app for it had the off option. Maybe it can be copied from there? The ST app didn’t have vacation mode working.

The log about checking and the one not finding support for usage, appear every 1-5 seconds.

Okay the usage thing is a bug for sure. I’ll see what I can figure out.

Thanks.

When calling the API for an updated state, the following lines show ‘isEnabled’: True and ‘isOnVacation’: False as two different states.

2019-08-13 23:01:05 INFO (SyncWorker_6) [pyeconet.equipment.water_heater] Calling API to get updated state.
2019-08-13 23:01:05 DEBUG (SyncWorker_6) [pyeconet.api] get_device response:
2019-08-13 23:01:05 DEBUG (SyncWorker_6) [pyeconet.api] {'id': XXXXX, 'deviceAddress': 704, 'name': 'Water Heater', 'type': 'Water Heater', 'subType': 'Electric Water Heater', 'awayTriggered': False, 'isschedulemodified': False, 'scheduleType': None, 'softwareVersion': 'WH-ELEC-E3-01-43', 'serialId': '', 'isLoadShiftOpted': False, 'isLoadShedOpted': False, 'isLoadShedActive': False, 'isLoadShiftActive': False, 'isNestActive': None, 'provisioningdate': None, 'isfollowschedulefromcloud': False, 'isScheduleOverridenfromCloud': False, 'iseqconnectedforschedule': False, 'connectedSystem': {'macAddress': ’XX-XX-XX-XX-XX-XX’}, 'hasCriticalAlert': False, 'setPoint': 110.0, 'minSetPoint': 110.0, 'maxSetPoint': 130.0, 'isEnabled': True, 'isConnected': True, 'isMqttConnected': False, 'isOnVacation': False, 'vacationCanBeDisabled': True, 'temperatureDisplayUnit': 'Fahrenheit', 'mode': 'Energy Saver', 'isAwayMode': False, 'isAwayModeSupported': False, 'awayCanBeDisabled': False, 'inUse': False, 'modelNumber': '', 'supportsUsageData': False, 'warningtemp': 120}

The code below are parts from jjhuff’s code for ST https://github.com/jjhuff/SmartThings_RheemEcoNet

Smart App:

def setDeviceEnabled(childDevice, enabled) {
	log.info "setDeviceEnabled: $childDevice.deviceNetworkId $enabled" 
	if (login()) {
    	apiPut("/equipment/$childDevice.deviceNetworkId", [
        	body: [
                isEnabled: enabled,

Device Handler:

def on() {
   	parent.setDeviceEnabled(this.device, true)
    sendEvent(name: "switch", value: "off")
}

def off() {
   	parent.setDeviceEnabled(this.device, false)
    sendEvent(name: "switch", value: "off")
}

def updateDeviceData(data) {
	sendEvent(name: "heatingSetpoint", value: data.setPoint, unit: "F")
    sendEvent(name: "switch", value: data.isEnabled ? "on" : "off")

The off operation not being there is also a bug. Jon says he has it but probably has the hybrid which is probably what this addon was built around.

This is super helpful, thanks. So the question is, how should this be handled? If the device is off, and you set the operation mode to something does the isEnabled turn back on?

I don’t have one of these so I don’t even remember how they are presented in the frontend. How do you change modes? If off is in the list of modes I think that will be an easy fix, but having on in there would be strange, turning it on when having to switch modes would be annoying.

assume you’re talking about me - I do have a hybrid water heater, you’re right :smiley:

I’m not sure what you mean. If the unit is set to disabled, isEnabled will say False and, if the unit is enabled, it changes to True.

What I mean is if isEnabled == False can you call set mode on the unit does it mode change and isEnabled then == True?

If that is the case, off can just be added to the list of operation modes if not it won’t be as easy.

I’m don’t know much about programming, yet, but, to me, it appears that, if isEnabled == False and you call set mode to on, then isEnabled == True. I guess it is a matter of trial and error.

Here is another piece that may be relevant:

def setDeviceEnabled(childDevice, enabled) {
	log.info "setDeviceEnabled: $childDevice.deviceNetworkId $enabled" 
	if (login()) {
    	apiPut("/equipment/$childDevice.deviceNetworkId", [
        	body: [
                isEnabled: enabled,

I don’t mean set mode to on I mean if you have it disabled (isEnabled is false) and you change the heating mode to performance or something, does changing that heat mode also enable the unit? Or, would you first have to enable the unit and then change the heating mode?

In EcoNet app, you can only change temperature or change operating mode between eco and performance only when the unit is on/enabled.

The ST app works the same way so, it looks like if you want to turn the unit on by “pressing the eco or performance button“, the app would have to send two commands when it first turns the unit on and then it sets eco or performance mode. Same thing with temperature.

Okay good to know, thanks.

Sure thing. Let me know when you have something to test or whatever.

Hi w1ll1am23. Things have been good for a long time. I even did HA updates no problems. I could switch my hybrid off or energy saver at will.

Today I opened the Android app to discover a huge change to v4.0.0. After logging in I discovered my HA was broken. I suspect it pushed an update to the heater as well as there is new functions there.

Off is now called disabled.

Just to let you know I’m back here.

Hey @w1ll1am23, I submitted a pull request to extend pyeconet to be able to pull more data from Econet.

I’m trending my both energy and water consumption. Pyeconet as it was only did Energy so I added water.

It also only summed the hours, so I also summed the days and months.

Right now I’m extracting the info and shoving it into MQTT to trend in HA. But I think we might be able to add a sensor component…

Here are the graphs I’m generating

21%20AM

12%20AM

Here is a sample output from my Rheem Tankless Hot Water heater.

{
    "energyUsage": {
        "days": {
            "2019-08-01T00:00:00.000": 0.0,
            "2019-08-02T00:00:00.000": 0.0,
            "2019-08-03T00:00:00.000": 0.0,
            "2019-08-04T00:00:00.000": 0.0,
            "2019-08-05T00:00:00.000": 0.0,
            "2019-08-06T00:00:00.000": 0.0,
            "2019-08-07T00:00:00.000": 0.0,
            "2019-08-08T00:00:00.000": 0.0,
            "2019-08-09T00:00:00.000": 0.0,
            "2019-08-10T00:00:00.000": 0.0,
            "2019-08-11T00:00:00.000": 0.0,
            "2019-08-12T00:00:00.000": 0.0,
            "2019-08-13T00:00:00.000": 0.0,
            "2019-08-14T00:00:00.000": 0.0,
            "2019-08-15T00:00:00.000": 0.0,
            "2019-08-16T00:00:00.000": 0.0,
            "2019-08-17T00:00:00.000": 0.0,
            "2019-08-18T00:00:00.000": 0.0,
            "2019-08-19T00:00:00.000": 0.0,
            "2019-08-20T00:00:00.000": 0.0,
            "2019-08-21T00:00:00.000": 0.0,
            "2019-08-22T00:00:00.000": 0.0,
            "2019-08-23T00:00:00.000": 1026.868896484375,
            "2019-08-24T00:00:00.000": 0.0,
            "2019-08-25T00:00:00.000": 0.0,
            "2019-08-26T00:00:00.000": 0.0,
            "2019-08-27T00:00:00.000": 0.0,
            "2019-08-28T00:00:00.000": 0.0,
            "2019-08-29T00:00:00.000": 0.0,
            "2019-08-30T00:00:00.000": 0.0,
            "2019-08-31T00:00:00.000": 0.0
        },
        "hours": {
            "2019-08-24T01:00:00.000": 0.0,
            "2019-08-24T02:00:00.000": 0.0,
            "2019-08-24T03:00:00.000": 0.0,
            "2019-08-24T04:00:00.000": 0.0,
            "2019-08-24T05:00:00.000": 0.0,
            "2019-08-24T06:00:00.000": 0.0,
            "2019-08-24T07:00:00.000": 0.0,
            "2019-08-24T08:00:00.000": 0.0,
            "2019-08-24T09:00:00.000": 0.0,
            "2019-08-24T10:00:00.000": 0.0,
            "2019-08-24T11:00:00.000": 0.0,
            "2019-08-24T12:00:00.000": 0.0,
            "2019-08-24T13:00:00.000": 0.0,
            "2019-08-24T14:00:00.000": 0.0,
            "2019-08-24T15:00:00.000": 0.0,
            "2019-08-24T16:00:00.000": 0.0,
            "2019-08-24T17:00:00.000": 0.0,
            "2019-08-24T18:00:00.000": 0.0,
            "2019-08-24T19:00:00.000": 0.0,
            "2019-08-24T20:00:00.000": 0.0,
            "2019-08-24T21:00:00.000": 0.0,
            "2019-08-24T22:00:00.000": 0.0,
            "2019-08-24T23:00:00.000": 0.0,
            "2019-08-25T00:00:00.000": 0.0
        },
        "months": {
            "2018-09-01T00:00:00.000": 0.0,
            "2018-10-01T00:00:00.000": 0.0,
            "2018-11-01T00:00:00.000": 0.0,
            "2018-12-01T00:00:00.000": 0.0,
            "2019-01-01T00:00:00.000": 0.0,
            "2019-02-01T00:00:00.000": 0.0,
            "2019-03-01T00:00:00.000": 0.0,
            "2019-04-01T00:00:00.000": 0.0,
            "2019-05-01T00:00:00.000": 0.0,
            "2019-06-01T00:00:00.000": 0.0,
            "2019-07-01T00:00:00.000": 0.0,
            "2019-08-01T00:00:00.000": 1026.868896484375
        },
        "report": {
            "reports": [
                {
                    "averageUsage": 0.0,
                    "maxUsage": 0.0,
                    "minUsage": 0.0,
                    "section": "Today",
                    "subtitle": "No Data to report yet for the past 4 hours",
                    "title": "Energy Usage Report"
                },
                {
                    "averageUsage": 34.228963216145836,
                    "maxUsage": 1026.868896484375,
                    "minUsage": 0.0,
                    "section": "This Month",
                    "subtitle": "In the past 24 days, you've used 1026.87 kBTU of energy.",
                    "title": "Energy Usage Report"
                },
                {
                    "averageUsage": 85.57240804036458,
                    "maxUsage": 1026.868896484375,
                    "minUsage": 0.0,
                    "section": "This Year",
                    "subtitle": "In the past 12 months, you've used 1026.87 kBTU of energy.",
                    "title": "Energy Usage Report"
                }
            ],
            "title": "Usage Report"
        },
        "unit": "kBTU"
    },
    "waterUsage": {
        "days": {
            "2019-08-01T00:00:00.000": 0.0,
            "2019-08-02T00:00:00.000": 0.0,
            "2019-08-03T00:00:00.000": 0.0,
            "2019-08-04T00:00:00.000": 0.0,
            "2019-08-05T00:00:00.000": 0.0,
            "2019-08-06T00:00:00.000": 0.0,
            "2019-08-07T00:00:00.000": 0.0,
            "2019-08-08T00:00:00.000": 0.0,
            "2019-08-09T00:00:00.000": 0.0,
            "2019-08-10T00:00:00.000": 0.0,
            "2019-08-11T00:00:00.000": 0.0,
            "2019-08-12T00:00:00.000": 0.0,
            "2019-08-13T00:00:00.000": 0.0,
            "2019-08-14T00:00:00.000": 0.0,
            "2019-08-15T00:00:00.000": 0.0,
            "2019-08-16T00:00:00.000": 0.0,
            "2019-08-17T00:00:00.000": 0.0,
            "2019-08-18T00:00:00.000": 0.0,
            "2019-08-19T00:00:00.000": 0.0,
            "2019-08-20T00:00:00.000": 0.0,
            "2019-08-21T00:00:00.000": 0.0,
            "2019-08-22T00:00:00.000": 0.0,
            "2019-08-23T00:00:00.000": 16.158897399902344,
            "2019-08-24T00:00:00.000": 0.0,
            "2019-08-25T00:00:00.000": 0.0,
            "2019-08-26T00:00:00.000": 0.0,
            "2019-08-27T00:00:00.000": 0.0,
            "2019-08-28T00:00:00.000": 0.0,
            "2019-08-29T00:00:00.000": 0.0,
            "2019-08-30T00:00:00.000": 0.0,
            "2019-08-31T00:00:00.000": 0.0
        },
        "hours": {
            "2019-08-24T01:00:00.000": 0.0,
            "2019-08-24T02:00:00.000": 0.0,
            "2019-08-24T03:00:00.000": 0.0,
            "2019-08-24T04:00:00.000": 0.0,
            "2019-08-24T05:00:00.000": 0.0,
            "2019-08-24T06:00:00.000": 0.0,
            "2019-08-24T07:00:00.000": 0.0,
            "2019-08-24T08:00:00.000": 0.0,
            "2019-08-24T09:00:00.000": 0.0,
            "2019-08-24T10:00:00.000": 0.0,
            "2019-08-24T11:00:00.000": 0.0,
            "2019-08-24T12:00:00.000": 0.0,
            "2019-08-24T13:00:00.000": 0.0,
            "2019-08-24T14:00:00.000": 0.0,
            "2019-08-24T15:00:00.000": 0.0,
            "2019-08-24T16:00:00.000": 0.0,
            "2019-08-24T17:00:00.000": 0.0,
            "2019-08-24T18:00:00.000": 0.0,
            "2019-08-24T19:00:00.000": 0.0,
            "2019-08-24T20:00:00.000": 0.0,
            "2019-08-24T21:00:00.000": 0.0,
            "2019-08-24T22:00:00.000": 0.0,
            "2019-08-24T23:00:00.000": 0.0,
            "2019-08-25T00:00:00.000": 0.0
        },
        "months": {
            "2018-09-01T00:00:00.000": 0.0,
            "2018-10-01T00:00:00.000": 0.0,
            "2018-11-01T00:00:00.000": 0.0,
            "2018-12-01T00:00:00.000": 0.0,
            "2019-01-01T00:00:00.000": 0.0,
            "2019-02-01T00:00:00.000": 0.0,
            "2019-03-01T00:00:00.000": 0.0,
            "2019-04-01T00:00:00.000": 0.0,
            "2019-05-01T00:00:00.000": 0.0,
            "2019-06-01T00:00:00.000": 0.0,
            "2019-07-01T00:00:00.000": 0.0,
            "2019-08-01T00:00:00.000": 16.158897399902344
        },
        "report": {
            "reports": [
                {
                    "averageUsage": 0.0,
                    "maxUsage": 0.0,
                    "minUsage": 0.0,
                    "section": "Today",
                    "subtitle": "No Data to report yet for the past 4 hours",
                    "title": "Hot Water Usage Report"
                },
                {
                    "averageUsage": 0.5386299133300781,
                    "maxUsage": 16.158897399902344,
                    "minUsage": 0.0,
                    "section": "This Month",
                    "subtitle": "In the past 24 days, you've used 16.16 Gallons of hot water.",
                    "title": "Hot Water Usage Report"
                },
                {
                    "averageUsage": 1.3465747833251953,
                    "maxUsage": 16.158897399902344,
                    "minUsage": 0.0,
                    "section": "This Year",
                    "subtitle": "In the past 12 months, you've used 16.16 Gallons of hot water.",
                    "title": "Hot Water Usage Report"
                }
            ],
            "title": "Usage Report"
        },
        "unit": "Gallons"
    }
}

I know you said you don’t have one this so your effort is extremely generous. Thank You!

Hey, thank for sending me this I never would have seen the github PR. I commented over there let me know what you think.