Merged
Conversation
This change introduces the AccessoryEncoder interface, which an AccessoryDriver can use to store and load the state of an Accessory. To recall, the state contains the accessory public and private keys, the public key and UUID of all paired clients, etc. and it is needed to support the correct operation of the Accessory after a restart. The default encoder - AccessoryEncoder, stores the minimum required state in a json format. The encoder can be changed by passing a different encoder instance to the AccessoryDriver. Impact on existing users: If you have a "*.pickle" accessory state and do nothing, what will probably happen is that your code will correctly unpickle right after the upgrade to version 1.1.2. On the next restart, however, the code will crash, as the AccessryDriver will have overriden the pickle with a non-pickle state representation. At this point, just don't unpickle as shown in main.py. Alternatively, run pickle_to_state.py to convert your state.
Bugfix: Changed CurrentTemperature default min/max values
Accessory.publish and Characteristic.notify should not fail when the broker is not set. This is to allow updates to happen before the Accessory is added to a driver or the Characteristic is added to an Accessory.
But it doesn't appear to work.
But still not finding the accessory when scanning.
Dynamic pincode and setup ID
Add accessory to control Mac display status.
Issue #24 - Initial X-HM:// URI and QR Setup Code work
Fixed encoded_payload rjust
..., persist_state='~/.foo_bar.state')
Also bump version to 1.1.4. This change will be uploaded to pypi, so users can install/upgrade and use the new QR setup code functionality and dynamic generation of setup ID and pincode.
This is useful when both you and clients can update the value of a Characteristic and you want your callback called only when clients update the value.
For issue #46
RPI 3b+ relay module via GPIO pins
Clients that made the characteristic change are NOT supposed to get events about the characteristic change as it can cause an unexpected HTTP disconnect (connection reset by peer) which leads temporary unresponsive accessories and violates the HAP spec
Homekit needs the headers and content sent in a single write call or it will randomly get connection reset by peer which leads to iOS stalling and devices showing up as non-responsive. Without HTTP/1.1 keep-alives, 50+ devices would cause a bridge to timeout or devices to go non-responsive because homekit would have to make a new connection to get / put for each device. With HTTP/1.1 it can avoid all of this overhead After this change, devices in homekit on the bridges with > 80 devices were now immediately responsive in testing.
Add support for HTTP/1.1 and random non-responsive devices #197
Create RPI_Relay.py
Fix multiple responses that are missing end_response
…t_addr Ensure events are not sent to the initiator client
For some services we want to send all the char value changes at once. This resolves an issue where we send ON and then BRIGHTNESS and the light would go to 100% and then dim to the brightness because each callback would only send one char at a time.
Switch to cryptography to resolve performance concerns.
Add support for service callbacks
Service callbacks example
* Fix typo in camera method * Use random ssrcs in camera * Add v_ssrc to camera session * Unpack v_ssrc in camera start stream * Rename audio_srtp_key in camera session
Make service callbacks handle multiple aids
Add option to select Zeroconf broadcast
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.