Releases: flip-dots/SolixBLE
v3.7.0
General changes
This is a small-ish release which adds proper support for the Solarbank 2 and improves the telemetry packet parsing to support parsing telemetry which is split across an arbitrary number of packets thanks to work done under #31 by @jul1an-s.
Added
- Added
MaxLoadSB2enum forSolarbank2. - Added
LightModeenum forSolarbank2. - Added
GridStatusenum forSolarbank2. - Added
SBUsageModeenum forSolarbank2. - Added
SBPowerCutoffenum forSolarbank2. - Added
error_codeproperty forSolarbank2. - Added
temperature_unitproperty forSolarbank2. - Added
output_cutoff_dataproperty forSolarbank2. - Added
lowpower_input_dataproperty forSolarbank2. - Added
input_cutoff_dataproperty forSolarbank2. - Added
max_loadproperty forSolarbank2. - Added
usage_modeproperty forSolarbank2. - Added
home_load_presetproperty forSolarbank2. - Added
light_modeproperty forSolarbank2. - Added
grid_statusproperty forSolarbank2. - Added
light_onproperty forSolarbank2. - Added
battery_heatingproperty forSolarbank2.
Changed
- Telemetry data split across an arbitrary number of packets is now supported natively, previously it required device specific implementation for some devices.
v3.6.0
General changes
This is a fairly major (but not super massive) release which adds support for the Anker Prime 160w charger and changes a bunch of things behind the scenes, including improving logging, the automatic reconnection logic, and it should make it easier to add support for more Anker Prime devices.
Added
- Added support for the Anker Prime 160w charger including port and timer control.
- Added docs page explaining how to patch Anker app to produce detailed logs.
Changed
- Payload parsing failures now produce detailed logs as to what went wrong as well as being more robust.
- Renamed ports of Anker Prime 250w charger to match existing naming convention.
- Tests now execute much faster due to usage of the fast_sleep and fast_timeout fixtures.
v3.5.0
General changes
This is a small release which adds more sensors for the C300(X) DC and fixes some broken ones. Big thanks to @terratec for the fixes/upgrades submitted under #8.
Added
- Added
dc_timer_remainingforC300DC. - Added
dc_timerforC300DC. - Added
battery_capacityforC300DC. - Added
software_versionforC300DC. - Added
lightforC300DC. - Added
device_overloadforC300DC. - Added
serial_numberforC300DC. - Added
device_timeoutforC300DC. - Added
temperature_unitforC300DC. - Added
is_display_onforC300DC. - Added
light_timeoutforC300DC. - Added
solar_portforC300DC. - Added
dc_12v_auto_onforC300DC.
Fixed
- Fixed
dc_power_outbeing incorrectly nameddc_power_inforC300DC - Fixed
charging_statususing incorrect enumChargingStatusC300DCforC300DC - Fixed
display_modeusing incorrect value forC300DC
Removed
- Removed
dc_power_in. Usesolar_power_inforC300DCinstead. - Removed
ChargingStatusC300DC. UseChargingStatusforC300DCinstead. - Removed
is_light_onforC300DC. Uselightinstead. - Removed
dc_output_timeoutforC300DC.
v3.4.0
v3.3.0
General changes
This is a fairly huge upgrade that ended up changing way more things than I planned for so it might be a good idea to exercise caution when using it, but it has been tested for the last few days with no major issues. Big picture, the automatic connection retrying has been re-written to be more reliable, connecting and negotiating should now be faster, its now possible to control some aspects of the C300(X) and C1000(X) (i.e AC/DC on/off control), some properties have been renamed and had their types changed, if a property has a bad value it shouldn't prevent others from being readable anymore, more parameters should be available and parsable, logs should be more useful, and there are a load more tests to make sure things work.
Added
- Added support for reading telemetry data spread across multiple packets.
- Added support for setting AC/DC output for
C300andC1000. - Added support for setting lightbar brightness for
C300andC1000. - Added support for turning display on/off for
C300andC1000. - Added support for setting display brightness for
C300andC1000. - Added support for setting display timeout for
C300andC1000. - Added support for requesting status updates from
C300andC1000. - Added example script for controlling
C300andC1000. - Added note to documentation about strange unconnectable conditions.
- Added note to documentation about automatic reconnection.
- Added
LightStatus.SOStoLightStatus. - Added
negotiatedproperty toSolixBLEDeviceto determine negotiation status. - Added tests for negotiation, decryption, telemetry processing, bad values, and reconnection.
Changed
- Changed documentation to use more generic device terms instead of power stations.
- Changed automatic reconnection to attempt to silently reconnect and only run callbacks on failure.
- Changed automatic reconnection to run callbacks on reconnection only if it failed to silently reconnect.
- Changed payload parsing to log payload when parsing fails.
- Changed logging of payloads to print potential types for the parameters of the first telemetry packet.
- Changed logging of payloads to print potential types for the parameters for unknown packets, not just telemetry.
- Changed logging of packets to print pattern, command, and payload.
- Changed negotiations to automatically retry if no response is received in a time limit and just generally be more robust.
- Use
ac_outputandPortStatusrather thanac_onandbool. - Use
solar_portandPortStatusrather thandc_input_onandbool. - Use
solar_power_inrather thandc_power_in. - Use
dc_outputrather thandc_port - Improved parsing of packets to validate header, length, and checksum.
- Improved parsing of packets to be able to parse most packets, not just telemetry.
- Disable usage of services cache to hopefully avoid UUID not found errors.
Fixed
- Fixed issue where properties would not be updated if one of them was invalid or missing.
- Fixed issue where inputs would show as
PortStatus.OUTPUTinstead ofPortStatus.INPUT
Removed
- Removed
solar_portfromC300andC1000as existing value changed with AC charging and actual is unknown. - Removed
ac_onandbooland replaced it withac_outputandPortStatus. - Removed
dc_input_onandbooland replaced it withsolar_portandPortStatus. - Removed
dc_power_inand replaced it withsolar_power_in. - Removed
dc_portand replaced it withdc_output. - Removed
supports_telemetryfromSolixBLEDevice.
v3.2.0
General changes
Using data from the anker-solix-api project and work done under #10, #11, #12 I have been able to add support for a whole load of devices, will any of them work? Who knows, but it will be fun finding out.
Added
- Added
C300DCclass for monitoring C300 power stations. - Added
C1000G2class formonitoring C1000 Gen 2 power stations. - Added
F2000class formonitoring F2000 (767 Powerhouse ) power stations. - Added
F3800class for monitoring F3800 power stations. - Added
Solarbank2class for monitoring Solarbank 2 systems. - Added
Solarbank3class for monitoring Solarbank 3 systems. - Added
PrimeCharger250wclass for monitoring the Anker 250w charger.
Changed
- Added error catching when parsing telemetry messages into little sections of data. This should avoid the entire library not working if a packet gets cut off for some reason.
v3.1.1
v3.1.0
General changes
This update completely re-writes the parsing system to use a new format which will be able to take advantage of the pre-existing database of devices created by the anker-solix-api project to allow me to add support for all of the documented devices.
Other quality of life improvements include adding automated tests for the parsing of C300 and C1000 telemetry, adding a CICD config to run those tests, a more helpful log of state changes in telemetry packets when in debug mode, fixing issues with parsing existing values, and adding some more sensors.
Added
- Added
ChargingStatusenum for the charging status of the device. - Added
ac_onproperty for C300 and C1000 to show status of AC output. - Added
temperatureproperty for C300 and C1000 to show internal temperature. - Added
charging_statusproperty for C300 and C1000 to show charging status of device. - Added
serial_numberproperty for C300 and C1000 to show serial number of device. - Added
software_versionproperty for C300 and C1000 to show software version of device. - Added
battery_healthproperty for C1000 to show health of internal battery. - Added
software_version_expansionproperty for C1000 to show software version of an expansion battery. - Added
software_version_controllerproperty for C1000 to show software version of the controller. - Added
temperature_expansionproperty for C1000 to show temperature of expansion battery. - Added
battery_percentage_expansionproperty for C1000 to show battery percentage of expansion battery. - Added
battery_health_expansionproperty for C1000 to show battery health of expansion battery. - Added
num_expansionproperty for C1000 to show number of expansion batteries.
Changed
- Changed reporting of status updates in debug log to show different representations (e.g str, hex, int, uint, etc).
Fixed
- Fixed incorrect value for
hours_remainingproperty for C300 and C1000 when time > 25.5h. - Fixed incorrect value for
days_remainingproperty for C300 and C1000 when time > 25.5h. - Fixed incorrect value for
time_remainingproperty for C300 and C1000 when time > 25.5h. - Fixed incorrect value for
timestamp_remainingproperty for C300 and C1000 when time > 25.5h.
v3.0.0
The latest firmware on Anker power stations forces the use of a custom encryption protocol which prevented this library from working, this update fixes that by implementing their rather bizzare protocol. Supported power stations running the latest firmware will now work again. Some other changes include improvements to logging, better retry logic, and a new method to get the serial number of the C300 (I plan on addding it for the C1000 later when I add some other sensors).