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

93 Commits

Author SHA1 Message Date
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
Barnaby Gray
660c2269e4 Add support for BG Electrical Smart Sockets 2019-10-13 22:12:13 +01:00
Daniel Høyer Iversen
2e5361bd8e
Remove support for pyaes (#281)
* remove support for pyaes

* remove support for pyaes

* remove support for pyaes
2019-10-02 09:25:27 +03:00
Leonardo Brondani Schenkel
11c5981793 Use old IP address lookup logic as fallback (#275)
On some machines, resolving the local hostname results in a loopback IP
address (127.0.0.0/8). This breaks discovery. In these situations, fall
back to the old IP address lookup logic that was removed on commit 790edb9.
2019-08-16 12:13:53 +03:00
Johnson Chin
9d9b49c3db SP2: Add support for OEM SP2 (#251) 2019-06-24 20:06:50 +02:00
Daniel Høyer Iversen
9ec2da834b
handle none power raw (#250) 2019-06-10 09:12:50 +02:00
Daniel Høyer Iversen
38a40c5a19
Use cryptography instead of pycryptodome (#246)
* Use cryptography instad of pycryptodome

* Use cryptography instad of pycryptodome
2019-05-27 20:57:32 +02:00
AnilDaoud
b8fdf337c9 cleaner local ip address lookup (#244) 2019-05-22 07:27:34 +02:00
Daniel Høyer Iversen
a75f98720e
code clean up (#243) 2019-05-19 17:54:14 +02:00
Matthew Garrett
3ad4a9f0f8
Merge branch 'master' into rf_experiment_v0.9 2019-05-18 00:10:40 -07:00
ninstein
0db3179623 Update __init__.py
add new device: TMall OEM SPMini3
2019-05-18 00:08:52 -07:00
gpenverne
77f11c8d49 Allow string mac address in constructor 2019-05-18 00:06:47 -07:00
BAN
9996c252f7
Update __init__.py 2019-01-08 16:47:31 +09:00
Sergey Prilukin
2b4e6d91ff
Merge branch 'rf_experiment' into rf_experiment_v0.9
# Conflicts:
#	README.md
#	broadlink/__init__.py
#	cli/broadlink_cli
2018-11-26 00:21:37 +02:00
Nick Dimov
73fc5fc4b9 Support for a new SP2 device.
It returns different codes for check and checknl.
2018-10-27 16:15:47 +03:00
Mayeul Cantan
56b2ac36e5 Refactor the device list
It is now more readable, which should make it easier to parse the code
and add new devices.
2018-04-30 23:06:19 +02:00
lordneon
e724aec007 Fixed a bug within the SP2 class.
check_power and check_nightlight did not check to see if the payload was already an int before calling ord.
2018-04-15 10:22:19 +00:00
Daniel Høyer Iversen
3b6b55ae73
Merge pull request #164 from horse315/master
fixed Hysen thermostat ctor & added comments
2018-03-31 15:57:17 +02:00
ooo89
832a40c278
Update __init__.py 2018-03-28 16:56:36 +02:00
Aleksey Bogomolov
e9748ff0b4
fixed Hysen thermostat ctor & added comments 2018-03-24 19:05:44 +03:00
clach04
8b593beff9 Restore Python 3 support (#95)
Use explicit byte literals.

AES encryption padding broken with commit f7e30344c5 under Python 3.
Python 3 support when using pyaes (instead of Crypto.Cipher.AES) now works.
2018-03-18 15:12:20 -07:00
Nightreaver
33a2e4ae54 implemented method to toggle nightlight on some SP3 devices (#159)
* implemented method to toggle nightlight on some SP3 devices

* implement nightlight feature to cli

* check_power/check_nightligh fixes for py2.7
2018-03-18 15:03:46 -07:00
Peter Windridge
39cc64efce Basic support for Hysen Heating Controller (dev type 0x4ead) (#138)
* Initial support for Hysen heating controller device.  Only gets current temperature.

* Add switch_to_auto() to put the controller in (pre-programmed) timed mode

* Add set_temp() to manually set temperature.  Now requires PyCRC (payload needs modbus CRC16)

* Remove test script

* Get current timer schedule

* Get much more data from device

* Add PyCRC to install_requires setup.py

* Rewrite based on better understanding.  Allow setting schedule and changing 'loop mode'

* Add set_time function

* Support advanced settings and perform CRC check on responses

* Explain remaining unknowns for Hyson thermostat

The room_temp_adj (or simply 'adj') only applies to the room_temp. It's limited to -5.0..+5.0, but uses a 2 byte data type.
This leads to the assumption that external_temp could also use this data type, maybe for showing temperatures below 0 - but I cannot test this currently. Maybe I have to place it near a fridge to confirm.

* Fix get_temp and add get_external_temp for Hysen

Again: maybe payload[17] also belongs to the external temperature...

* remove comment about first 2 bytes and raise error if CRC check on response fails

* Remove comment about guessed meaning of unknown

Just confirmed, that lowest outside temp is 0. So it seems to only need 1 byte, as room temp does.

* add ability to toogle hysen device power

Turn display power on/off

* Update set_power() to support remote_lock for Hysen

Sorry, there was still one thing missing: set/unset remote_lock.
I captured again and changed the set_power accordingly.

* fix comments
2018-03-18 15:03:26 -07:00
Nightreaver
8754493951 broadlink_discovery returns wrong devtype (#157)
* few item in gendevice use `if` instead of `elif`

* passing `devtype` back to device
change `cli/broadlink_discovery` to display proper devtype
2018-03-18 14:58:15 -07:00
marconfus
26109aac67 Fix for environments where Crypto and pyaes are installed. (#151)
If both Crypto and pyaes are installed 'pyaes' is in sys.modules(), but as it is not imported (see top) it's not available.
Fix for #128
2018-03-18 14:54:17 -07:00