Rheem Hotwater heater, econet?

Does anyone know of a Rheem ECOnet component. I found a link to a post some time ago, but there seems to have been no other development.

I believe these are supported in Wink without a hub?

There isnā€™t any support currently in homeassistantā€™s wink implementation for water heaters, but I would love to add it.

If you are interested in this possible solution, you should attempt to setup your water heater with a Wink account, and if it works, assist me with adding support to homeassistant via wink. All I would need is JSON for the device which you could obtain from the wink@home site https://winkathome.net/Login.aspx?redirect=default.aspx

I have my EcoNet connected to Wink. Listing JSON below. Let me know if you require further information as I would love to get this integrated into HA as a Component or just a way to be notified if the current temperatures drop. It appears this app doesnt read into the current temperatures and only shows the ā€˜setā€™ temperature. The only way Iā€™ve been able to find out the current temp of the water heater inside the unit is to go up to the physical display and access the sensors. Does the below JSON indicate the same where it only shows the ā€˜setā€™ temperature? I was never able to find a way to get reports of usage which would be a nice way to indicate the savings after installing the unit.

JSON output:

{
  "object_type": "water_heater",
  "object_id": "2729",
  "uuid": "REMOVED",
  "icon_id": null,
  "icon_code": null,
  "desired_state": {
    "set_point": 48.888888888888886,
    "mode": "eco",
    "powered": true,
    "vacation_mode": false
  },
  "last_reading": {
    "units": {
      "temperature": "f"
    },
    "units_updated_at": 1504666537.7042785,
    "connection": true,
    "connection_updated_at": 1504666537.7042785,
    "set_point": 48.888888888888886,
    "set_point_updated_at": 1504666537.7042785,
    "mode": "eco",
    "mode_updated_at": 1504666537.7042785,
    "powered": true,
    "powered_updated_at": 1504666537.7042785,
    "vacation_mode": false,
    "vacation_mode_updated_at": 1504666537.7042785,
    "max_set_point_allowed": 60.0,
    "max_set_point_allowed_updated_at": 1504666537.7042785,
    "min_set_point_allowed": 43.333333333333336,
    "min_set_point_allowed_updated_at": 1504666537.7042785,
    "scald_message": "CAUTION. HOT WATER.  Contact may cause serious burns to skin.",
    "scald_message_updated_at": 1504666537.7042785,
    "rheem_type": "Heat Pump Water Heater",
    "rheem_type_updated_at": 1504666537.7042785,
    "modes_allowed": [
      "eco",
      "heat_pump",
      "high_demand",
      "electric_only"
    ],
    "modes_allowed_updated_at": 1504666537.7042785,
    "alarm_message": null,
    "alarm_message_updated_at": null,
    "desired_set_point": null,
    "desired_set_point_updated_at": null,
    "desired_mode": null,
    "desired_mode_updated_at": null,
    "desired_powered": null,
    "desired_powered_updated_at": null,
    "desired_vacation_mode": null,
    "desired_vacation_mode_updated_at": null,
    "connection_changed_at": 1504666416.2879331,
    "mode_changed_at": 1504666416.634584,
    "set_point_changed_at": 1504666416.634584,
    "powered_changed_at": 1504666416.634584,
    "vacation_mode_changed_at": 1504666416.634584,
    "max_set_point_allowed_changed_at": 1504666416.634584,
    "min_set_point_allowed_changed_at": 1504666416.634584,
    "units_changed_at": 1504666416.634584,
    "scald_message_changed_at": 1504666416.634584,
    "modes_allowed_changed_at": 1504666416.634584,
    "rheem_type_changed_at": 1504666416.634584
  },
  "subscription": {
    "pubnub": {
      "subscribe_key": "REMOVED",
      "channel": "REMOVED"
    }
  },
  "water_heater_id": "2729",
  "name": "Garage Gen 4",
  "locale": "en_us",
  "units": {},
  "created_at": 1504666416,
  "hidden_at": null,
  "capabilities": {
    "fields": [
      {
        "type": "nested_hash",
        "field": "units",
        "mutability": "read-only"
      }
    ],
    "excludes_naming": true,
    "excludes_robot_cause": true
  },
  "manufacturer_device_model": "Water Heater Heat Pump Water Heater",
  "manufacturer_device_id": "51688",
  "device_manufacturer": "rheem",
  "model_name": "Water Heater",
  "upc_id": "143",
  "upc_code": "020352614724",
  "primary_upc_code": "rheem_water_heater",
  "linked_service_id": "793030",
  "lat_lng": [
    null,
    null
  ],
  "location": ""
}

I dont have a wink hub, so I wouldnā€™t be able to help.

I did find out that you can connect the econet to NestAtHome. So when you are away it does go into away mode.

You donā€™t need a Wink hub for this to work. The EcoNet is a WiFi device that speaks to Rheem directly. Wink then talks to the Rheem API on the backend. So you should be able to create a Wink account, pair your Rheem account to it, and boom everything shows up. This is how nest, sensi, ecobee, and hue work for example.

@ChipSkylark37 correct me if I am wrong.

Perfect, that is exactly what I needed. I assume you will be available to test once I get something together?

Unfortunately the current temperature isnā€™t listed anywhere in the JSON and the Wink API documentation doesnā€™t call it out either. :frowning:

I can test, no problem.

The EcoNet module is a standalone unit connected directly to the Rheem Water Heater. Itā€™s a $50 add-on card that basically lets you control the set temperature and set the mode (Away, Heat Pump, Hybrid, Electric / High Demand) but doesnā€™t have the ability to get reports, current sensor temp, or anything else so it seems.

Whether or not the Wink Hub is required, Iā€™m not sure. I have a Wink 2 Hub and paired it to the app last night without issue. It should just be able to integrate directly with the Rheem User ID / Password and not have to go through Wink.

Let me know when you need some testing done.

If you have the Android app (I do) it does have more reports. Energy reports by day/month/year. You can also change the temperature and mode. and set vacation mode.

With the nest app connected, if your nest goes into away or vacation mode, it will put the rheem into those modes also.

I was able to get the wink app and registered an account and connected it to my rheem. If you need anything else please let me know.

Awesome Iā€™ll try to work on this some tonight. The steps are as follows.

  1. Get JSON (done!)
  2. Implement the water heater in python-wink with tests and put together a test script for you guys to test with.
  3. Determine how to implement this in HA. This is kinda tricky I was thinking about making it a climate device, but without a current temperature I am not sure this will workā€¦ If a new platform is needed I will need some guidance from someone else on how we should implement it.
  4. You guys test the changes in HA
  5. Get it merged in for a release.

I am not sure where we are in the release cycle but we might be able to get this in the next release, for sure the one after that.

In searching for an answer I came across this github:

it appears to be a bit old, but looks like the user was going the python route. Not sure if it helps you, but thought Id post it just in case.

@anon91811138

Its interesting that the Android app has more than the iOS. If there is the ability to pull additional data into HA that isnā€™t available on the frontend iOS app, that would be a big leg up over using the Wink / EcoNet app directly.

Youā€™re right, that website is pretty bad. Does the Android app have the current temp sensors? The model that I have is the Hybrid with Heat Pump so it has more sensors in the unit, but none of which I can see from the iOS app. Perhaps the direct API to Rheem has the data but Iā€™m unsure how to get that unless its buried in that website you provided.

@ChipSkylark37

The Android app that I have does not have the actual water temp, but it does have the set-temp.

I have the hybrid model also (xe50t10hd50u0) which on the panel for the unit displays upper/lower temp sensor, water leak sensor, and some more reports. But the econet android app does not have those sensors.

Iā€™ve been doing some digging around and it appears their API is only available to partners and not the public. The only thing you can get on the io.myrheem.com appears to be generic login and basic information.

I believe I have the same model. Can you share a sample of the reports that you can get?

I canā€™t believe thereā€™s no way to get the current water temp / other sensors, or at least they dont have it publicized. It would be great to be able to set an alert / notification if the sensor temp drops below lets say 5-10% of the set temp or below a certain temp overall to indicate maybe its not heating properly.

Perhaps Iā€™ll reach out to them later on to see if thereā€™s further information we can get if weā€™re interested in signing up as a partner / developer.

This may help for some other capabilities that may be able to be pulled in based on the SmartThings Device Handler / Integration:

The post on Jun 3rd from ā€œfstrā€ seems to have more information / calls that are capable in the unit.

Linked GitHub:

There appears to be a water-usage report also, but I dont think its available on this model . It pops up real quick when I select reports, but Im unable to choose it as an option, it defaults to this energy report

Pull Request for python-wink is open https://github.com/python-wink/python-wink/pull/93

I am not sure how this will translate over to Home Assistant because of the lack of a current temperature like I mentioned.

I will try to merge this in asap. I want to do a little more testing.

Awesome! Is there anything to test right now or weā€™re waiting for further testing and a merge?

If you want to test you can.

Download this https://github.com/w1ll1am23/python-wink/archive/master.zip and extract then inside of the src folder create a test.py with the following info.

import pywink

pywink.set_bearer_token("YOUR_TOKEN_HERE")

water_heaters = pywink.get_water_heaters()
for water_heater in water_heaters:
    print("Name: " +water_heater.name())
    print("State: " + water_heater.state())
    print("Modes: " + str(water_heater.modes()))
    print("Current set point: " + str(water_heater.current_set_point()))
    print("Max set point: " + str(water_heater.max_set_point()))
    print("Min set point: " + str(water_heater.min_set_point()))
    print("Is on?: " + water_heater.is_on())
    print("Vacation mode enabled?: " + water_heater.vacation_mode_enabled())
    print("Type: " + water_heater.rheem_type())

If that works and everything looks good then run this one.

import pywink

pywink.set_bearer_token("YOUR_TOKEN_HERE")

water_heaters = pywink.get_water_heaters()
for water_heater in water_heaters:
    water_heater.set_temperature(35)
    water_heater.set_mode("ONE_OF_THE_MODES_FROM_ABOVE")
    water_heater.set_vacation_mode(True)

Then check your Wink app and see if everything changed.

It could just be me, Im not a programmerā€¦but I tried this and got an error when trying to run the test script

File ā€œtest.pyā€, line 13
print("Current set point: " + water_heater.current_set_point())
^
SyntaxError: invalid syntax

I had a typo, actually two I think. I updated it can you try again?