1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
# pyeconet
Python3 interface to the unofficial EcoNet API.
> [!NOTE]
> I no longer have a device connect to the Rheem cloud due to migrating to a fully local control option
> https://github.com/esphome-econet/esphome-econet
> If anyone is interested in taking over ownership for this project please open an issue to discuss.
> [!NOTE]
> This isn't using an official EcoNet API therefore this library could stop working at any time, without warning.
```python
import asyncio
import logging
import time
import getpass
from pyeconet import EcoNetApiInterface
from pyeconet.equipment import EquipmentType
from pyeconet.equipment.water_heater import WaterHeaterOperationMode
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
async def main():
email = input("Enter your email: ").strip()
password = "" #getpass.getpass(prompt='Enter your password: ')
api = await EcoNetApiInterface.login(email, password=password)
all_equipment = await api.get_equipment_by_type([EquipmentType.WATER_HEATER, EquipmentType.THERMOSTAT])
#api.subscribe()
#await asyncio.sleep(5)
for equip_list in all_equipment.values():
for equipment in equip_list:
print(f"Name: {equipment.device_name}")
# print(f"Set point: {equipment.set_point}")
# print(f"Supports modes: {equipment._supports_modes()}")
# print(f"Operation modes: {equipment.modes}")
# print(f"Operation mode: {equipment.mode}")
#await equipment._get_energy_usage()
#equipment.set_set_point(equipment.set_point + 1)
#equipment.set_mode(OperationMode.ELECTRIC_MODE)
#await asyncio.sleep(300000)
#api.unsubscribe()
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
|