This fork of SleekXMPP disables certificate validation to work around #62 and #45
This fix should be seen as a temporary hack until we figure out a long term solution.
Original implementation assumed that the "total" value from the API response was the denominator for lifespan, but this was incorrect. The "val" from the `life_span` message is the percentage represented as a whole number, with no dividing necessary.
All sucks vocabulary is now defined up-front in consts, so that library users can import those const instead of hard-coding them.
is_cleaning and is_charging properties were added to VacBot, avoiding library users to have to understand which vacuum statuses mean active cleaning.
All logging has been moved to instantiated loggers using the module's namespace, as is recommended by the Python docs.
Tons of cleanup alongside a lot of new functionality. BotVac now provides an overall vacuum state as a single state, and can emit events to subscribers every time the state changes, as well as any lifespan or battery changes.
The BotVac can also now be created in a `monitor` mode, meaning the BotVac object will handle fetching initial state, refetching state after the BotVac goes offline then online, and regularly checking in on component lifespans.
All statuses are also now normalized so that the BotVac's reported statuses always match the names defined by the sucks library.
The _handle_error method was throwing a runtime error because it expects an XML element
The functionality in _handle_error is covered by _handle_ctl so it can be removed altogether
The capitalization adjustment was breaking any commands that required CamelCase, such as GetChargeState. Args are not needed for commands such as GetChargeState, so the xml will no longer build that array if it's set to None.