1
0
mirror of https://github.com/mjg59/python-broadlink.git synced 2024-11-22 23:17:47 +01:00
Commit Graph

197 Commits

Author SHA1 Message Date
Felipe Martins Diel
ab4311e799 Add support for the FastCon technology 2022-03-19 19:53:29 -03:00
Felipe Martins Diel
70180cfbc6 Merge branch 'master' into dev 2022-03-19 19:37:31 -03:00
Steven Dodd
2b70440786
Add support for S3 Hub and LC-1 (1,2&3 gang) light switches (#654)
* https://github.com/mjg59/python-broadlink/issues/647

* Added get_state(did) and update documentation

* Fixed pwr3 set_state

* Added get_subdevices()

* Cleaned up get_subdevices

* Updated S3 documentation

* Added device id 0xA59C:("S3", "Broadlink")

* Improve logic of get_subdevices()

Prevents infinite loop.

* Black

* Move s3 closer to s1c

* Update README.md

Co-authored-by: Felipe Martins Diel <41558831+felipediel@users.noreply.github.com>
2022-03-19 19:31:14 -03:00
Felipe Martins Diel
3bdb6dfb92
Merge new product ids into master (#667)
* Add support for Broadlink LB26 R1 (0x644E) (#636)

* Add support for Broadlink LB26 R1 (0x644E)

* Add Broadlink LB26 R1 to README.md

* Add missing device codes for LB27 R1 Smart Bulbs (#644)

These are two missing codes.
This closes issue #639

* Add support for Broadlink RM4 pro (0x5213) (#649)

* Add support for Broadlink RM4 TV mate (0x5209) (#655)

* Move 0x644C and 0x644E to the LB1 class (#666)

Co-authored-by: Mathew Verdouw <mathew@vtc.com.au>
2022-03-19 15:28:54 -03:00
Felipe Martins Diel
f2a582b8f9
Add support for Broadlink MP1 with power meter (#631) 2021-10-18 15:59:47 -03:00
Felipe Martins Diel
9873af9bc4
Standardize ip_address option (#630) 2021-10-18 14:19:41 -03:00
Felipe Martins Diel
b596984b44
Add ip_address option to setup() (#628)
* Add ip_address option to setup()

* Update README.md
2021-10-18 13:42:32 -03:00
Felipe Martins Diel
26ee3192d9 Change the type and model of the hysen class (#627) 2021-10-17 13:25:00 -03:00
Felipe Martins Diel
62f81bc281
Add support for Broadlink SCB1E (0xA56B) (#623) 2021-10-17 05:36:42 -03:00
1UPNuke
ca1634575e Add support for Clas Ohlson SL-2 E14 (0x6065) (#600) 2021-09-12 16:55:08 -03:00
Felipe Martins Diel
a84a628d1c
Add support for Broadlink RM mini 3 (0x27DC) (#594) 2021-05-15 15:06:38 -03:00
Felipe Martins Diel
3f92850a5f
Add support for Broadlink SP4L-EU (0xA56C) (#593) 2021-05-11 17:25:22 -03:00
Felipe Martins Diel
bc44166702
Refactor SUPPORTED_TYPES (#592) 2021-05-06 14:52:11 -03:00
Felipe Martins Diel
1ae12e7d1c
Remove local_ip_address option from hello() (#591) 2021-05-03 17:34:22 -03:00
Felipe Martins Diel
c6390924bf
Add support for Broadlink SP4L-AU (0x757B) (#590) 2021-05-03 16:02:54 -03:00
Felipe Martins Diel
b43b296ff3
Add support for Broadlink RM mini 3 (0x6507) (#589) 2021-05-01 15:05:31 -03:00
Felipe Martins Diel
2d863bd6c1
Rename the lb27r1 class to lb2 (#586) 2021-04-29 20:31:30 -03:00
Felipe Martins Diel
6a54803a36
Improve code quality (#585)
* Improve docstrings

* Fix line-too-long

* Disable unidiomatic-typecheck

* Move smart plugs to the top

* Use constants from const.py

* Run black
2021-04-29 19:51:22 -03:00
Felipe Martins Diel
d48d1347a3
Move constants to const.py (#584) 2021-04-29 18:59:58 -03:00
Felipe Martins Diel
e1f3b83efd Add support for Broadlink SP4L-EU (0xA5D3) (#582) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
49322ddaae Add support for Broadlink SP4L-CN (0x7568) (#577) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
fc5c33ee97 Use the absolute position to read the lock status (#575) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
12fdf01631 Improve code quality (#572)
* Improve typing

* Use better names

* Clean up switch.py

* Remove unused import

* Run black

* Remove unnecessary comments

* Clean up climate.py
2021-04-26 17:57:02 -03:00
Felipe Martins Diel
b77e803864 Use CamelCase for the Device class (#570) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
36b293bf05 Raise exceptions explicitly (#569) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
056434ab46 Add support for Broadlink RM4C pro (0x6184) (#568) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
67b674859f Segregate CRC16.get_table() from CRC16.calculate() (#567) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
4e1e690762 Encapsulate crc16() to avoid global (#566) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
86b5d0727c Improve CRC-16 function (#565)
* Rename calculate_crc16 to crc16

* Apply PEP-8 naming conventions

* Remove unnecessary import

* Accept any sequence type

* Remove unnecessary conversions

* Expose polynomial and initial value as kwargs

* Remove unnecessary bitwise operations

* Store the CRC-16 table for performance

* Add missing type hints

* Update docstring

* General improvements
2021-04-26 17:57:02 -03:00
Felipe Martins Diel
1a8ee21a34 Make better use of namespaces (#564)
Use namespaces for typing and exceptions.
2021-04-26 17:57:02 -03:00
Felipe Martins Diel
2198400ad6 Add support for Broadlink LB27 R1 (0xA4F4) (#557)
* Add support for Broadlink LB27 R1 (0xA4F4)

* Improve typing
2021-04-26 17:57:02 -03:00
Johnson Chin
f3e4edcad4 Add support for Broadlink SP4L-UK (0x7587) (#561)
* Add new SP4L-UK type

* Switch: SP4 check power and nightlight to return as boolean

Co-authored-by: Felipe Martins Diel <41558831+felipediel@users.noreply.github.com>
2021-04-26 17:57:02 -03:00
Felipe Martins Diel
de0cebc00f Add support for Broadlink SCB2 (0x6494) (#558) 2021-04-26 17:57:02 -03:00
Felipe Martins Diel
7c0b4d529f
Improve exceptions (#551) 2021-03-11 04:33:14 -03:00
Felipe Martins Diel
a11b7233c9
Improve repr(device) and str(device) (#550) 2021-03-11 02:51:29 -03:00
Felipe Martins Diel
90a43835e8
Reset connection ID and AES key before sending Client Key Exchange packets (#549) 2021-03-11 01:25:57 -03:00
Felipe Martins Diel
20b9eed6bc
Add a method to update device name and lock status (#537) 2021-03-11 01:00:10 -03:00
Felipe Martins Diel
5dee06c815
Make 0x2711 a sp2s device (#538) 2021-02-17 00:38:18 -03:00
Felipe Martins Diel
39ee67bb98
Split the rm and rm4 classes into smaller classes (#529) 2021-02-16 18:14:11 -03:00
Felipe Martins Diel
1b73cfce3a
Split the sp2 class into smaller classes (#521) 2021-02-16 16:38:10 -03:00
Felipe Martins Diel
008846ba41
Fix index (#533) 2021-02-04 17:16:17 -03:00
Felipe Martins Diel
e12fd6f115 Make the type a class attribute (#530) 2021-01-29 18:22:58 -03:00
Felipe Martins Diel
586d44493e Change rm.find_rf_packet()'s return value to None (#527)
Change rm.find_rf_packet()'s return value to None. If there is no exception, it worked.
2021-01-29 18:22:58 -03:00
Felipe Martins Diel
21fa2a20bf Add a function to send ping packets (#526)
Rename 'host' attribute to 'address' (ping) (#528)
2021-01-29 18:22:58 -03:00
Felipe Martins Diel
9af3a3c56c Clean up device.py (#523)
* Clean up device.send_packet()

* Clean up device.auth()

* Clean up scan()
2021-01-29 18:22:58 -03:00
jbsky
9a04f68212 Refactor the LB1 class (#517)
* Refactor the LB1 class

* General improvements

* Enumerate bulb color modes

* Clean up encoder

Co-authored-by: Felipe Martins Diel <felipe-diel@hotmail.com>
2021-01-29 18:22:58 -03:00
Felipe Martins Diel
b33bbdbbcf Fix encryption errors (#505) 2021-01-29 18:17:45 -03:00
Felipe Martins Diel
448e3026df Filter unsupported features and convert sensor data to float (#495) 2021-01-29 18:17:45 -03:00
Felipe Martins Diel
c3bb598e27 Timeout improvements (#464)
- Only start to count the timer inside the lock.
- Improve precision of the timeout option.
- Use a context manager for the connection.
- Remove SO_REUSEADDR option.

Amend: Revert retry_intvl (#506)
2021-01-29 18:17:45 -03:00
Felipe Martins Diel
d7cbe304e0 Improve RM4 communication (#490) 2021-01-29 18:17:45 -03:00