Skip to content

Conversation

MartinHjelmare
Copy link
Collaborator

Breaking Changes:

Closed issues:

  • Add support for I_PRE_SLEEP_NOTIFICATION in 2.2.0 #121
  • OTA not kicking off? #118

Merged pull requests:

MartinHjelmare and others added 21 commits January 14, 2018 16:42
* Add internal sub-types addeed in MYS 2.2

* fix lint error

* Validate new 2.2 internal sub-types

* Remove a space

* Validate payload as string and add tests
* Handle smartsleep in version 2.2

* Add const modules for version 2.1 and 2.2.
* Map the new message type for smartsleep correctly.
* Update get_const function.
* Update tests.

* Update tests for version 2.1 and 2.2

* Fix up
* Clean up save_sensors

* Save sensors on a schedule

* Saving sensors to a persistence file does I/O, which is expensive. So
  instead of doing this after every sensor update, which can be very
  frequent, save the sensors on a schedule every 10 seconds.
* Make sure we cancel the schedule when stopping the gateway and that
  we save the sensors before exiting.

* Fix tests

* Add tests

* Only save sensors if persistence
* Restructure package

* Fix tests

* Fix lint

* Break out persistence tests

* Clean up pylint disable

* Allow save scheduler to be customized

* Add scheduler argument

* Do not load persistence file at gateway init

**Breaking change**

* Break out threading gateway class, ThreadingGateway. Change order of
  keyword arguments to clarify and simplify class inheritence.
* Move persistence file loading, saving and scheduling of saving to own
  method on ThreadingGateway. This allows future use of asyncio. The
  new method is called start_persistence. This must be called before
  starting the thread loop of the gateway, if persistence is used, to
  ensure persistence file is loaded before communication starts. This
  also allows the user control over when persistence should be loaded.

* Clarify methods and docstrings
* Break out firmware file loading

* Fix tests
* Add async serial gateway

* Use pyserial-asyncio version 0.4.
* Rename handle_queue to run_job.
* Rename fill_queue to add_job.
* Use collections.deque instead of queue.Queue for main queue.
* Send reply directly from add_job in async serial gateway.
* Make gateway start, stop, start_persistence and update_fw methods
  coroutines in async serial gateway.
* Run I/O methods, ie load/save persistence file and firmware updates
  on executor.
* Add debug logging for persistence loading and saving.
* Clean up pylint disables.
* Add async main script.
* Update readme.

* Clean up
* Add base serial protocol and upstream serial thread
* Use pyserial library threading module.
* Set line terminator to b'\n'.
* Add async serial protocol based on base serial protocol.
* Clean up inheritance.
* Clarify public methods.
* Refactor tcp and serial gateways

* Add base protocol class.
* Add base transport gateway class, for gateways with transport
  implemented in this library. Ie mqtt will not use this class.
* Use base transport gateway class for serial and tcp gateways.
* Add tcp transport class and refactor tcp gateway class.
* Inherit tcp transport from serial ReaderThread.
* Add polling thread for queue for tcp gateway.
* Only do debug logging for received and sent messages for gateways
  without log message.
* Fix mqtt gateway and tests.

* Clean up logging

* Fix check connection timer and clean up logging
* Add async tcp gateway

* Refactor gateways to use base async gateway and base TCP gateway.
* Add async TCP gateway.

* Fix check connection

* Don't close transport after connection closed

* Update readme
* Create a base MQTT gateway.
* Use base MQTT gateway for threaded MQTT gateway and async MQTT
  gateway.
* PYPI at https://pypi.org/ now supports rendering markdown for the
  description. The legacy site http://pypi.python.org/ will not render
  the markdown, but this site will soon be closed down and redirect to
  the new site. See https://wiki.python.org/psf/WarehouseRoadmap.
* Update changelog generator to use python package

* Add changelog generator to pypi requirements

* Fix changelog generator script
@MartinHjelmare MartinHjelmare merged commit 4ee8b70 into theolind:master Apr 2, 2018
@MartinHjelmare MartinHjelmare deleted the 0.13 branch April 2, 2018 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants