All notable changes to this project will be documented in this file (since version 1.1.8
).
If you notice that something is missing, please open an issue or submit a PR.
The format is based on Keep a Changelog.
- Spelling mistake in
setup.cfg
that caused broken builds. #130
- Package data is now included again. #128
- Option to pass custom loader object to
driver
with parameterloader
. #105 - Default port for
accessory_driver.port = 51234
. #105
- The
loader
object is now stored in thedriver
and can be accessed throughdriver.loader
. #105 - Use the
Accessory.run_at_interval
decorator for therun
method, instead ofwhile True: sleep(x); do_stuff()
. #124
- The
driver
doesn't take the topaccessory
anymore. Instead it's added throughdriver.add_accessory()
after the initialization. #105 - All
driver
init parameter are now required to be passed as keywords. #105 - Any
accessory
needs thedriver
object for its initialization, passed as first argument. #105 - Removed class
AsyncAccessory
. All of its methods are now fully integrated into theAccessory
class.run
,stop
can be either normal or async methods andrun_at_interval
works with both as well. #124
- Removed
acc.set_driver()
andacc.set_sentinel()
methods.acc.run_sentinel
,acc.aio_stop_event
andacc.loop
are now accessed throughacc.driver.xxx
.run_sentinel
is changed tostop_event
. #105 - Added scripts for
setup
andrelease
. #125 - Added
async
helper methods and restructuredstart
andstop
methods forasync
conversion. #124
- Added
getter_callback
to Characteristics. #90 - The
pincode
can now be assigned as a parameter for the driver. #120
- Improved documentation for version
2.0.0
. #114
- The
accessory
andbridge
parametermac
andpincode
are now deprecated. #120 Accessory.config_changed
, usedriver.config_changed
instead. #120Accessory.paired
, usedriver.state.paired
instead. #120
- Typo in log message in
accessory_driver.stop
. #112
- Moved all accessories from
pyhap.accessories
to anaccessories
folder at the root of the project. #115 - Removed unused method
accessory.create
. #117 - Removed
iid_manager
andsetup_id
parameter fromaccessory
andbridge
init
calls. #117
- The
driver
event loop name changed fromevent_loop
toloop
. #107 pyhap.accessories
is now a native namespace package. Seepyhap/accessories/README.md
for details on how to integrate third party Accessories. #115- Added static code checks. To run them locally use
tox -e lint
andtox -e pylint
. #118 - Added
State
helper class to keep track of (semi-)static information. #120 - Variables that are related to pairing and storing static information have been moved to
driver.state
. That includes fromaccessory
:config_version
,mac
,setup_id
,private_key
,public_key
andpaired_clients
as well as theadd_paired_client
andremoved_paired_client
methods. Foraccessory_driver
:address
andport
. #120
- New helper methods to run the
run
method repeatedly, until the driver is stopped.Accessory.repeat(time)
orAsyncAccessory.repeat(time)
. #74 - New helper method
service.configure_char
. Shortcut to configuring a characteristic. #84 - Characteristics and Services can now be created from a json dictionary with
from_dict
. #85 - Added helper method to enable easy override of the
AccessoryInformation
service. #102 - Added helper method to load a service and chars and add it to an accessory. #102
- Accessory.run method is now called through an event loop. You can either inherit from
Accessory
like before: Therun
method will be wrapped in a thread. Or inherit fromAsyncAccessory
and implementasync def run
. This will lead to the execution in the event loop. #74 - Scripts are now located in a separate directory:
scripts
. #81 driver.start
starts the event loop withloop.run_forever()
. #83- Debug logs for
char.set_value
andchar.client_update_value
. #99 - Changed default values associated with the
AccessoryInformation
service. #102 Accessory._set_services
is now deprecated. Instead services should be initialized in the accessoriesinit
method. #102
- Overriding properties now checks that value is still a valid value, otherwise value will be set to the default value. #82
- The
AccessoryInformation
service will always have theiid=1
. #102
- With introduction of async methods the min required Python version changes to
3.5
. #74 - The
Accessory.Category
class was removed and theCategory
constants moved topyhap/const.py
with the naming:CATEGORY_[OLD_NAME]
(e.g.CATEGORY_OTHER
) #86 - Updated
Accessories
to work with changes. #74, #89 - Renamed
Accessory.broker
toAccessory.Driver
.acc.set_broker
is nowacc.set_driver
. #104 - QR Code is now optional. It requires
pip install HAP-python[QRCode]
. #103 Loader.get_serv_loader
andLoader.get_char_loader
are replaced byLoader.get_loader
, since it now handles loading chars and services in one class. #108
to_HAP
methods don't require theiid_manager
any more #84, #85Service._add_chars
is now integrated inService.add_characteristic
85driver.update_advertisment
is nowdriver.update_advertisement
85TypeLoader
,CharLoader
andServiceLoader
are now combined into theLoader
with the new methodsget_char
andget_service
to load new chars and services. 85- Moved some constants to
pyhap/const.py
and removedHAP_FORMAT
,HAP_UNITS
andHAP_PERMISSIONS
in favor forHAP_FORMAT_[OLD_FORMAT]
, etc. #86 - Updated tests and added new test dependency
pytest-timeout
#88 - Rewrote
IIDManager
and splitIIDManager.remove
intoremove_obj
andremove_iid
. #100 requirements.txt
file has been added for min,requirements_all.txt
covers all requirements. #103
Characteristics
are now initialized with onlydisplay_name
,type_id
andproperties
as parameter. Removedvalue
andbroker
. 73- Split
Characteristic.set_value
method intoset_value
andclient_update_value
.set_value
is intended to send value updates to HomeKit, it won't call thesetter_callback
anymore.client_update_value
is now used by thedriver
to update thevalue
of the char accordingly and callsetter_callback
. It will also notify any other clients about the value change. 73
- Removed
Characteristic.NotConfiguredError
. 73 - Updated tests. 73
Characteristic.to_HAP
doesn't require theiid_manager
any more. 73Characteristic.notify
doesn't check if broker is set anymore. 73- Added helper function
Characteristic._get_default_value
. 73 - Added helper function
Characterisitc.to_valid_value
. 73
- New method
Characteristic.override_properties
. #66 - Added new
Apple-defined
types. Please check the commit to see which have changed.
- Driver calls
char.set_value
now withshould_notify=True
instead ofFalse
to notify other clients about the value change as well. #62
- Accessories with
AID=7
stopped working #61. Don't assign it to new accessories.
- Default value for
ValidValues
parameter is now thevalid value
with the least value. Mostly0
or1
. #57 - Removed the deprecated method
char.get_value
. #67 - Removed optional characteristics (
Service.opt_characteristics
) from the service characterization. They have been handled similar toService.characteristics
internally. They are still part ofpyhap/resources/services.json
however. #67 - Updated the
Apple-defined
types. Unsupported once have been removed. Please check the commit to see which have changed.
- Removed
Characteristic._create_hap_template()
and merged it intoCharacteristic.to_HAP
. #66 - Removed
char.has_valid_values
and replaced it with runtime checks. #66 - Added a
requirements_all.txt
file. #65
No changelog for this version has been added yet.