What's Changed
* Refactor get_ip method to handle hostname resolution errors and raise exception.
* NanogridAir will now be "initialized" if you provide an IP adress when creating the ng air object.
* ConnectionError exception is now raised if hostname cannot be resolved when initializing or if data cannot be fetched from Nanogrid air device.
* An exception is no longer raised if there are extra fields on the API side. We want the API to be extendable while not crashing ctek-py.
* Added a BaseDataClass which adds a __str__ and to_dict() method to all dataclasses.
Breaking Changes
* Removed `fetch_mac()` method from NanogridAir class, it made no sense to have a seperate method for just one field in the json response. Instead use
Before
mac = await NanogridAir().fetch_mac()
New
status = await NanogridAir().fetch_status()
mac = status.device_info.mac
Break-ish Changes
* If the hostname of the NG Air cannot be resolved, the lib will now raise a `ConnectionError` exception. Before it would return the the IP as `None` which could cause more issues down the line.
**Full Changelog**: https://github.com/ChargeStorm/ctek-py/compare/0.1.0...0.2.0