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

217 Commits

Author SHA1 Message Date
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
Felipe Martins Diel
1b3fd16321 Fix MP1's check_power_raw() annotation (#485)
This method returns an integer.
2021-01-29 18:17:45 -03:00
Felipe Martins Diel
bdc5432e2e Clamp the packet count between 0x8000 and 0xFFFF (#486) 2021-01-29 18:17:45 -03:00
Felipe Martins Diel
bc6719dc2a Add new product ids
Add support for Broadlink RM4C mini (0x6539) (#476)

Add support for Broadlink RM4 pro (0x653C) (#472)

Add support for Broadlink RM4S (0x6364) (#475)

Add support for Broadlink MCB1 (0x756F) (#478)

Add support for Broadlink MCB1 (0xA56A) (#478)

Add support for Broadlink RM mini 3 (0x6508) (#479)

Add support for Efergy Ego (0x271D) (#481)

Add support for Broadlink SCB1E (0x5115) (#514)

Add support for Broadlink SCB1E (0x6113) (#488)

Add support for Broadlink SP4L-EU (0x618B) (#489)

Add support for Broadlink SP4L-UK (0xA589) (#491)

Add support for Broadlink RM3 mini (0x27d3) (#493)

Add support for Broadlink SP4L-AU (0x6489) (#498)

Add support for BG Electrical AHC/U-01 (0x51E2) (#497)

Add support for Broadlink MCB1 (0x6111) (#509)
2021-01-29 18:17:45 -03:00
Felipe Martins Diel
1ad468aefe Clean up get_energy() (#471)
Amend: Fix sp3s energy monitoring (#504)
2021-01-29 18:17:45 -03:00
Kendell R
dfd3372c36 Add GH Actions (#470)
Add GitHub actions and run black.
2021-01-29 18:17:45 -03:00
Felipe Martins Diel
73dab5c3d5
Overload __str__ in the device class (#468) 2020-11-05 20:19:03 +01:00
Felipe Martins Diel
1d81ebd1d0 Rename SP4L to SP4 and SP4M to SP4B 2020-11-05 02:11:37 -08:00
Felipe Martins Diel
6f1f976e2f Update packet count in the authentication step 2020-10-24 02:19:01 -07:00
Felipe Martins Diel
1c5ba74f46 Fix shebangs 2020-10-24 02:17:41 -07:00
Felipe Martins Diel
957baf5447
Add support for Broadlink SP4M-US (0x648b) (#447) 2020-10-18 13:22:03 -07:00
Felipe Martins Diel
c8a5ea02fd
Add support for Broadlink RM4 mini (0x653a) (#451) 2020-10-18 00:51:43 -07:00
Felipe Martins Diel
0beccda833
Add support for RM mini 3 (0x27c7) (#446) 2020-10-18 00:50:31 -07:00
Felipe Martins Diel
e1fa54f874
Fix SP4 class (#445) 2020-10-18 00:50:15 -07:00
Felipe Martins Diel
a31d766d33
Add support for Broadlink SP mini 3 (0x7583) (#444) 2020-10-18 00:49:42 -07:00
Felipe Martins Diel
f11d825e6e
Add support for Broadlink SP mini 3 (0x7d11) (#443) 2020-10-18 00:48:25 -07:00
Felipe Martins Diel
16abdf850f
Improve device discovery (#438)
This update improves device discovery by broadcasting several hello messages and ignoring repeated responses.
2020-10-18 00:47:21 -07:00
Felipe Martins Diel
0dc0068d63
Improve code quality (#428)
* Fix lint errors

* Remove rm2 class

* Rename cs to conn

* Add __repr__ to device class

* Make get_devices() a dictionary

* Clean up alarm kit

* Add module doscstrings

* Fix MAC address conversion
2020-09-24 07:36:12 +02:00
Felipe Martins Diel
28fa72f962
Make bind() optional and implement a generator for device discovery (#427) 2020-09-23 07:43:56 +02:00
Tamarinen
9248ee6b0c
Add sp4 refactored (#429)
* Add SP4 device class

* Remove legacy byte conversion

* Implement suggested improvements

* Apply some love to _encode() and _decode() too.

* Remove unnecessary safeguards

* Remove unnecessary return values

* Add missing periods to the comments.

Co-authored-by: Martin Samuelsson <httpov@columbiegg.com>
2020-09-22 17:58:07 -07:00
sivero
6ab23e9261
Update __init__.py (#423)
Add support for (0x27cc) RM mini 3
2020-09-20 17:17:10 -07:00
Felipe Martins Diel
2ae9b9db12
Add support for Broadlink RM4 pro (0x649b) (#421) 2020-09-20 17:15:56 -07:00
Felipe Martins Diel
a4f76bcf36 Add support for Broadlink MP2 (0x7540) 2020-09-20 17:14:56 -07:00
Felipe Martins Diel
868153bfd1 Add support for Broadlink MP1-1K3S2U (0x4f1b) 2020-09-20 17:14:32 -07:00
Felipe Martins Diel
d17fb228cf
Add support for Broadlink RM pro+ (0x27c3) (#422) 2020-09-20 17:14:01 -07:00
Felipe Martins Diel
05440417be Add support for Broadlink RM mini 3 (0x27cd) 2020-09-20 17:12:41 -07:00
Felipe Martins Diel
fc0244e6a4 Add support for Broadlink RM mini 3 (0x27d0) 2020-09-20 17:12:41 -07:00
Felipe Martins Diel
91ae5952ee Add support for OEM Broadlink SP2-IL (0x7539) 2020-09-20 17:12:19 -07:00
Felipe Martins Diel
6ac060f141 Add support for Ankuoo NEO and NEO PRO 2020-09-20 17:11:47 -07:00
Felipe Martins Diel
5ef4124491 Remove legacy byte conversions 2020-09-20 17:11:14 -07:00
Felipe Martins Diel
de38e237ca Clean up imports 2020-09-20 02:10:18 -07:00
Felipe Martins Diel
487a13d895 Improve annotations 2020-09-20 02:10:18 -07:00
Felipe Martins Diel
08c020e597 Call Mr. Krueger 2020-09-20 02:10:18 -07:00
Felipe Martins Diel
76012c6cd4 Add annotations for parameters 2020-09-20 02:10:18 -07:00
Felipe Martins Diel
8bf107ab69 Add docstrings and annotations 2020-09-20 02:10:18 -07:00
Felipe Martins Diel
792f1a1c60 Rename DNSError to DNSLookupError 2020-09-16 14:05:07 -07:00
Felipe Martins Diel
20d1d63fc3 Create a SDKException for DNS errors 2020-09-16 14:05:07 -07:00
Felipe Martins Diel
5af3a81264 Restore VPN support 2020-09-16 14:05:07 -07:00
Felipe Martins Diel
086fd1cd75
Fix setters (#407) 2020-09-06 10:52:12 +02:00
Felipe Martins Diel
cf1e2c3a30
Check the sum and length of received packets (#410)
* Use sum() for checksums

* Check sum and length of received packets
2020-09-06 10:51:45 +02:00
Felipe Martins Diel
b4aa15617a
Add support for RM4 mini (0x648d) (#411) 2020-09-06 10:51:17 +02:00
Felipe Martins Diel
e59d4a6875
Fix RM4 command header (#412) 2020-09-06 10:50:57 +02:00
Daan Klijn
8167736588 Allow setting custom discover ip port 2020-08-31 01:56:08 -07:00
Felipe Martins Diel
e4ad86278d
Rename lock byte (#389) 2020-07-31 07:10:21 +02:00
Felipe Martins Diel
02ce6ec661
Add support for SC1 device (#388) 2020-07-31 07:09:46 +02:00
Felipe Martins Diel
943706de5c Expose device dictionary 2020-07-19 01:36:32 -07:00
Felipe Martins Diel
daebd806fd Fix 0x5f36 name 2020-06-17 21:06:11 -07:00
Felipe Martins Diel
f10e4fdef0 Add models and manufacturers 2020-06-17 21:06:11 -07:00
Felipe Martins Diel
e41d240942 Add a method to lock/unlock the device 2020-06-17 10:50:27 -07:00
Felipe Martins Diel
e9e14e82d2
Rename change_name() to set_name() (#382) 2020-06-14 16:37:37 +02:00
Felipe Martins Diel
8862be5c05
Use little-endian for the MAC address and connection ID (#370) 2020-06-08 12:22:27 +02:00
Felipe Martins Diel
89cd7d2970
Improve A1, RM and RM4 sensors (#374)
* Clean up A1 sensor

* Improve communication with RM4 sensors

* Add check_sensors() to RM class

* Fix parenthesis

* Fix noise levels

* Fix precision error
2020-06-08 12:21:23 +02:00
Felipe Martins Diel
47087bfc7f
Add support to SP2-CL (0x7544) (#375) 2020-06-08 12:21:00 +02:00
Felipe Martins Diel
d0dcf06e2f
Rollback to old address lookup logic (#378) 2020-06-08 12:20:44 +02:00
Felipe Martins Diel
4b90e437a0
Add method for obtaining the firmware version (#379)
* Add method for obtaining firmware version

* Use hex notation for bytes

Co-authored-by: Daniel Høyer Iversen <mail@dahoiv.net>
2020-06-08 12:20:22 +02:00
Felipe Martins Diel
76bcfd0bfb
Add method for changing device name (#381) 2020-06-08 12:19:21 +02:00
Matthew Garrett
749cfef1eb
Merge pull request #368 from felipediel/bytearray
Replace bytes with bytearray
2020-05-24 12:10:52 -07:00
Felipe Martins Diel
dec2b684d5 Replace bytes with bytearray 2020-05-20 21:00:11 -03:00
Felipe Martins Diel
7dd0a15a7b
Extend support to RM4 Pro (0x61a2) 2020-05-07 13:12:58 -03:00
Felipe Martins Diel
934bf7a969
Close the socket outside the while loop (#359)
* Close the socket outside the while loop

* Solve conflicts
2020-05-07 15:53:55 +02:00
Felipe Martins Diel
3216b069f0
Raise exceptions for errors (#356)
* Raise exceptions for errors

* Fix lb1 error check

* Fix typo

* Improve code readability

* Fix exception
2020-05-07 07:59:21 +02:00
Felipe Martins Diel
5e444988e1
Fix 0x62be device name (#354) 2020-05-02 13:51:59 +02:00
Felipe Martins Diel
f3d0427133
Extend support to RM4c Mini (0x6070) (#348) 2020-04-25 11:41:04 +02:00
Felipe Martins Diel
3e8b008ef7
Close sockets after using them (#350) 2020-04-25 11:40:48 +02:00
Felipe Martins Diel
6cf9292b44
Revert adler32 (#345)
* Revert adler32

* Fix checksum
2020-04-19 08:53:09 +02:00
Felipe Martins Diel
65a1b04666
Fix device name (#342) 2020-04-19 08:50:16 +02:00
Kevin Eifinger
ed87b8d1de
Add missing "self." to calculate_crc16 uses (#344) 2020-04-19 08:49:55 +02:00
Felipe Martins Diel
548aa05da0
Extend support to RM4 Pro (0x6026) (#340) 2020-04-15 09:04:01 +02:00
Felipe Martins Diel
a5925063f9
Fix padding algorithm for CBC mode
Due to the lack of a parenthesis, the packets were getting 16 bytes larger than necessary.
2020-04-13 17:42:51 -03:00
majuss
a6827caaf7
Removed PyCRC as dependency; implemented CRC16 directly (#327)
* Removed PyCRC as dependency; implemented CRC16 directly

* replace crc16 with integrated function

* Added self to calculate crc
2020-04-10 09:23:15 +02:00
csabavirag
2bc7b06c69
Adding support for LB1 (RGB Light Bulb - 0x60e8) (#332) 2020-04-05 19:14:47 +02:00
Felipe Martins Diel
26a4565e58
Add support for RM4 0x62bc (#331)
* Add support for RM4 0x62bc

* Fix device name
2020-04-05 19:14:09 +02:00
Felipe Martins Diel
446496cc24
Obtain device name and cloud byte from HELLO_RESPONSE (#322) 2020-03-24 16:09:31 +01:00
hakana
4a3950a7c5
Add temperature and humidity for RM4 mini (0x610e) (#321)
* Add temperature and humidity reading for RM4 Mini

* Change divider for tem and humi (RM4 mini)
2020-03-23 21:23:05 +01:00
hakana
84e53c8d2b
Add support for RM4 mini with device type 0x610e (#320) 2020-03-16 19:56:06 +01:00
Felipe Martins Diel
1a1169f1a9
Add support for 0x5f36 devices and RM4 series (#317)
* Add support for 0x5f36 devices

This type of device requires a header in the payload. The rest is the same.

* Improve request header assignment

* Change code sending header

I just found out that this device uses a different header for sending codes. This update addresses this issue.

* Improve authentication

Use the error code to check if the authentication was successful.

* Use default value when devtype is None

* Use generic remote type if devtype is None

* Extend support to RM4 series

I just realized that RM4 devices use the same header. I will take the opportunity to extend support to these devices as well.

* Add device type 0x62be and create rm4 class 

The rm4 class will improve code scalability. Just add the RM4 type to this class and it will just work.

* Remove comma
2020-03-16 09:49:41 +01:00
Daniel Høyer Iversen
654db0935b
Fix new RM mini3 (#305)
* Fix new RM mini3

Some little change

* Fix new RM mini3

Some little change

Co-authored-by: Daniel Høyer Iversen <mail@dahoiv.net>
2020-03-04 22:26:23 +01:00
Daniel Høyer Iversen
e84becd05b
Add support for specifying destination IP address to use in discovery (#313)
Co-authored-by: Kja64 <Ken@lkv20.dk>
2020-03-04 22:25:00 +01:00
Daniel Høyer Iversen
ec4df39665
Add 27de RM Mini 3 (C) (#314)
I have a 0x27de RM Mini 3, as inspired by https://github.com/lprhodes/broadlinkjs-rm/blob/master/index.js, I added the identification and python-broadlink would handle it properly.
2020-03-04 22:24:33 +01:00
Daniel Høyer Iversen
8e7446f410
Fix CBC mode padding and use adler32 for checksums (#315)
* Fix CBC mode padding and use adler32 for checksums

* Change line order

This change comes to improve the readability of the code.

* Use zero-padding for CBC mode
2020-03-04 22:24:09 +01:00
Barnaby Gray
a05efe1c00 Add detail on return value for get_state() 2019-10-16 09:58:02 +01:00