Releases: jasonacox/pypowerwall
Releases · jasonacox/pypowerwall
v0.10.9 - TEDAPI Voltage & Current
What's Changed
- Add computed voltage and current to
/api/meters/aggregates
from TEDAPI status data by @jasonacox in #107 - Fix error in
num_meters_aggregated
calculation in aggregates.
Full Changelog: v0.10.8...v0.10.9
v0.10.8 - Firmware Version for TEDAPI
What's Changed
- TEDAPI functions for firmware version and PW3 by @jasonacox in #106
- Add TEDAPI
get_firmware_version()
to poll Powerwall for firmware version. Discovered by @geptto in #97. This function has been integrated into pypowerwall existing APIs (e.g.pw.version()
) - Add TEDAPI
get_components()
andget_battery_block()
functions which provide additional Powerwall 3 related device vital information for Powerwall 3 owners. Discovered by @lignumaqua in jasonacox/Powerwall-Dashboard#392 (comment). The plan it to integrate this data into the other device vitals payloads for PW3 systems (TODO).
Full Changelog: v0.10.7...v0.10.8
v0.10.7 - FleetAPI Energy History
What's Changed
- Add power history retrieval to FleetAPI by @jasonacox in #105
- FleetAPI - Add
get_history()
andget_calendar_history()
to return energy, power, soe, and other history data.
import pypowerwall
pw = pypowerwall.Powerwall(host=PW_HOST, email=PW_EMAIL, fleetapi=True)
pw.client.fleet.get_calendar_history(kind="soe")
pw.client.fleet.get_history(kind="power")
Full Changelog: v0.10.6...v0.10.7
v0.10.6 - pyLint Cleanup
What's Changed
- Address pyLint cleanup and minor bug fixes by @jasonacox in #103
- TEDAPI get_reserve() fix to address unscaled battery backup reserve level results.
- Address pyLint Cleanup of Code.
- Proxy: Command mode error handling.
- Cloud Mode: Fix logic for selecting FleetAPI mode
- Add request timeout settings to FleetAPI and TEDAPI calls.
Full Changelog: v0.10.5...v0.10.6
v0.10.5 - Minor Fixes
What's Changed
- v0.10.5 - Minor Fixes by @jasonacox in #102
- Fix for TEDAPI "full" (e.g. Powerwall 3) mode, including
grid_status
bug resulting in false reports of grid status,level()
bug where data gap resulted in 0% state of charge andalerts()
where data gap from tedapi resulted in anull
alert. - Add TEDAPI API call locking to limit load caused by concurrent polling.
- Proxy - Add battery full_pack and remaining energy data to
/pod
API call for all cases.
Full Changelog: v0.10.4...v0.10.5
0.10.4 - Powerwall 3 Local API Support
What's Changed
- Add Powerwall 3 Local API Support by @jasonacox in #101
- TEDAPI will activate in
hybrid
(using TEDAPI for vitals and existing local APIs for other metrics) orfull
(all data from TEDAPI) mode to provide better Powerwall 3 support. - The
full
mode will automatically activate when the customerpassword
is blank andgw_pwd
is set. - Note: The
full
mode will provide less metrics thanhybrid
mode since Powerwall 2/+ systems have additional APIs that are used inhybrid
mode to fetch additional data
import pypowerwall
# Activate HYBRID mode (for Powerwall / 2 / + systems)
pw = pypowerwall.Powerwall("192.168.91.1", password=PASSWORD, email=EMAIL, gw_pwd=PW_GW_PWD)
# Activate FULL mode (for all systems including Powerwall 3)
pw = pypowerwall.Powerwall("192.168.91.1", gw_pwd=PW_GW_PWD)
Related:
Full Changelog: v0.10.3...v0.10.4
v0.10.3 - TEDAPI Connect Update
What's Changed
- v0.10.3 - TEDAPI Connect by @jasonacox in #100
- Update
setup.py
to include dependencies onprotobuf>=3.20.0
. - Fix TEDAPI
connect()
logic error to better validate PW3 Gateway endpoint access as raised in #97 by @ttl74ls100 - Add documentation for TEDAPI setup.
- Update CLI to support TEDAPI calls.
- Proxy t60 - Fix edge case where
/csv
API will error due to NoneType inputs. - Add TEDAPI argument to set custom GW IP address.
# Connect to TEDAPI and pull data
python3 -m pypowerwall tedapi
# Direct call to TEDAPI class test function (optional password)
python3 -m pypowerwall.tedapi GWPASSWORD
python3 -m pypowerwall.tedapi --debug
python3 -m pypowerwall.tedapi --gw_ip 192.168.91.1 --debug
Full Changelog: v0.10.2...v0.10.3
v0.10.2 - FleetAPI Hotfix
What's Changed
- Fix FleetAPI Setup by @jasonacox in #99 as raised in #98.
- Update FleetAPI documentation and CLI usage.
Full Changelog: v0.10.1...v0.10.2
v0.10.1 - TEDAPI Vitals Hotfix
What's Changed
- v0.10.1 - TEDAPI Vitals Hotfix by @jasonacox in #96
- Fix PVAC lookup error logic in TEDAPI class vitals() function.
- Add alerts and other elements to PVAC TETHC TESYNC vitals.
- Update vitals Neurio block to include correct location and adjust RealPower based on power scale factor.
Full Changelog: v0.10.0...v0.10.1
v0.10.0 - New Device Vitals
What's Changed
- v0.10.0 - New Device Vitals by @jasonacox in #95
- Add support for
/tedapi
API access on Gateway (requires connectivity to 192.168.91.1 GW and Gateway Password) with access to "config" and "status" data. - Adds drop-in replacement for depreciated
/vitals
API and payload using the new TEDAPI class. This allows easy access to Powerwall device vitals. - Proxy update to t58 to support TEDAPI with environmental variable
PW_GW_PWD
for Gateway Password. Also added FleetAPI, Cloud and TEDAPI specific GET calls,/fleetapi
,/cloud
, and/tedapi
respectively.
# How to Activate the TEDAPI Mode
import pypowerwall
# You will need the Gateway/WiFi Password usually found on QR code on Gateway (not the customer password)
gw_pwd = "GW_PASSWORD"
# Direct Connect to GW
host = "192.168.91.1"
pw = pypowerwall.Powerwall(host,password,email,timezone,gw_pwd=gw_pwd)
print(pw.vitals())
# New TEDAPI Class
import pypowerwall.tedapi
tedapi = pypowerwall.tedapi.TEDAPI("GW_PASSWORD")
config = tedapi.get_config()
status = tedapi.get_status()
meterAggregates = status.get('control', {}).get('meterAggregates', [])
for meter in meterAggregates:
location = meter.get('location', 'Unknown').title()
realPowerW = int(meter.get('realPowerW', 0))
print(f" - {location}: {realPowerW}W")
Full Changelog: v0.9.1...v0.10.0