diff options
Diffstat (limited to 'devices.py')
-rw-r--r-- | devices.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/devices.py b/devices.py new file mode 100644 index 0000000..0b0ba2a --- /dev/null +++ b/devices.py @@ -0,0 +1,31 @@ +import tasmotadevicecontroller +import database +import asyncio +import json +import os + +COUNTER_NAMES = ["Total", "Today"] +GAUGE_NAMES = ["Power", "ApparentPower", "ReactivePower", "Factor", "Voltage", "Current"] +SUMMARY_NAMES = ["TotalStartTime", "Yesterday"] +BOOLEAN_ENUM_NAMES = ["Power"] + +async def get_energy_for(host, username = None, password = None): + device = await tasmotadevicecontroller.TasmotaDevice().connect(host, username, password) + energy = await device.sendRawRequest("Status 8") + power = await device.getPower() + # friendlyname = await device.getFriendlyName() + energy["StatusSNS"]["ENERGY"]["Power"] = power + return energy["StatusSNS"]["ENERGY"] + # return {"%s_%s" % (status["FriendlyName"], k): v for k, v in status.items()} + +async def log_energies_for(db: database.PowerDatabase, host, username, password): + pass + +if __name__ == "__main__": + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + print(asyncio.run(get_energy_for("switch.plug", "admin", "securebackdoor"))) + # asyncio.run(get_all_plugs("4u.plug:admin:securebackdoor,switch.plug:admin:securebackdoor,router.plug:admin:securebackdoor,nas.plug:admin:securebackdoor")) + except KeyboardInterrupt: + pass |